(navigation image)
Home American Libraries | Canadian Libraries | Universal Library | Community Texts | Project Gutenberg | Children's Library | Biodiversity Heritage Library | Additional Collections
Search: Advanced Search
Anonymous User (login or join us)
Upload
See other formats

Full text of "Amiga Manual: C-Net Pro 3.0 (1994)(Perspective Software)"

--'X 





PRO 






^fc- 



vdletlw ^^,or«l 



ystevw 



or Commodore AMIGA® computers 





[Filtw* Njf Id 
K?n Fiitltt-" - "'" 1 



■ " " I. DlSfliy... I (Ifitiivtft,.. I 

7". J . W>i!l*»iJ Wmii.. . 1 $| 

H\S%... | ; (ICJWi,., j 

I 6 HwtfM. ..| "fitVrrt.TJ iJj 




Uvt j 



Ctltt/3 Contr*! pinel 



I <tie «m) 

j (no rot} 
4 <no one)! 



T»rn M [fot...| l^lcsi-. 
l((tvitin|...Jf* Toswv 



« » IBl 



~«_;sia 






r, i!fi; I litlsl ?SfSfi'- ,3 r M ' s Kmf- ?■ wt»J«»wti 



Program and documentation 
written by Ken Pletzer 



Perspective Software 



Copyright ®1994 All rights reserved J 



Copyright © 1994 Perspective Software, All rights reserved 

No part of this publication may be reproduced, transmitted, tan- 
scribed, stored in a retrieval system, or translated into any language in 
any form without the written permission of Perspective Software. 



Perspective Software 
P.O. Box 87175 
Si Canton, Michigan 48187 

Sales Information: 

Beverly James Products 
P.O. Box 40191 
Redford, Michigan 48240 

Printed in the United States of America 



All printed parts of this book and binder were composed 

and created using Commdore AMIGA computers and 

Professional Page v4.1® Desktop Publishing 

software from Gold Disk, Inc. 

This manual was written by Ken Pletzer, then edited and published by J im 
Selleck. If the text contains any errors or ommisions, it is the fault of twelve 
years of Ronald Reagan and Republican politics in the US government. Yes, its a 
lame excuse, ^however the American public has bought it before. 



j Table of Contents I | 


TABLE OF CONTENTS 




System Overview and Glossary 


1 


Glossary of Commonly Used Terms 


1 


System StorageAareas Used by CNet BBS 


16 


ONWARD! 


17 


CHAPTER 1 - Welcome 


19 


About your CNet Documentation 


19 


System Requirements 


20 


New Features of Version 3,0 


21 


Getting Help 


22 


The Registration Card 


22 


Perspective Software License Agreement 


23 


Limited Warranty 


24 


CHAPTER 2 - Installation 


27 


Manual or Automatic? 


27 


Note for Updating CNet SysOps 


28 


What to Do Next 


28 


Manual Installation Procedure 


28 


Modifying Your startup-sequence File 


28 


Installation of System Files 


29 


Choosing a Location for CNet: 


29 


Installation of CNet Files 


29 


Updating from Version 2.x 


30 


CHAPTER 3 - The Control Panel and BBS GUI 35 


Running CNet 


35 


Problems Loading and Running Control Panel 


36 


Getting to know me Control Panel 


36 


Saving the Control Panel Configuration 


37 


Control Panel Menu Options 


38 


Other Control Panel Gadgets 


39 


The BBS GUI - Waiting for a call 


40 


The BBS GUI - User on-line 


42 


The User Status Window 


43 


Terminal Mode 


45 


CHAPTER 4 - The Configuration Editor 


47 


Running the Configuration Editor 


47 


General System Information 


47 ; 


Display 


4 ! * 


Limits 


49 


Defaults 


52 


Options 


53 


Paths 


56 


BBS Macros 


58 


Term Macros 


58 


Accounting 


58 ' . 


Archivers... 


tfr* ■•' 


Editors... 


66 



1 1 CNet PRO 3 Bulletin Board Service 


Protocols... 


67 


Events... 


68 


Modems... 


74 


Fido-Net... 


79 


Logs... 


84 


Tosser.. 


86 


CHAPTER 5 - Logon Procedures 


89 


Modem Answer Problems 


89 


Null Modem Setup 


90 


The logon Prompts 


90 


The New User Procedures 


91 


Auto Callback at logon 


92 


Auto Callback Validation 


92 


Creating "avalid* Files 


92 


Caller ID 


94 


System-wide Caller ID Setup Options 


96 


CHAPTER o - Ine BBS> User interlace, 




Main Command Level 


97 


CNet Command and Subsystem Structure Overview 


97 


Commands Available at all Command Prompts 


98 


The Main Command Level 


102 


The Input Prompt 


104 


Ranges of Numbers 


105 


Pausing and Breaking 


106 


Skipping Prompts for Faster Action 


106 


CHAPTER 7 - Users, Access Groups, Privileges 




and Limits 


109 


The EA and EG Commands 


110 


Editing Limits/Ratios/Flags 


111 


Privilege Flags 


116 


Special Sysop EA Functions 


124 


CHAPTER 8 - User Preferences 


127 


The User Profile 


127 


The Terminal Preferences 


127 


The BBS Preferences 


130 


CHAPTER 9 - The Subboards 


135 


Creating Subboards 


135 


Paths and Partitions 


137 


Memory and Buffers 


140 


Viewing/Editing a Subboard's Configuration 


141 


The "Edit Access Vara" Screen 


143 


The EL "Other Flags" Screen 


146 


Editing More Than One Subboard at a Time 


154 


Subdirectories: Creating a Subboard Tree Structure 


154 


A » Navigating the Subboard Tree 


156 


Rearranging and Moving Subboards 


157 


Direct Disk Access Subboards 


157 



Table of Contents 1 1 1 



CD-ROM Subboards 159 

UUCP Subboards 159 

FidoNet Subboards 160 

Items and the Post and Response Format 160 

Ways to Find What You are Looking For 163 

Uploading and Downloading Files 1 65 

Adopting Orphan Files 168 

Other Ways to View Files 168 

Selecting Ranges of Items 1 69 
Scanning and Reading Messages in "chronological" 

Order 172 
Ratios, Paybacks, and the File and Byte 

Credit Systems 173 

Ways to Kill, Edit, or Move Existing Items 175 

File Validation 177 

Downloading Messages — the "yank-task" 177 

Determination of New Items and Responses 1 80 

Scanning for New Messages and Files at Logon 181 

File Integrity Testing 183 

File Transformation 185 
Subboard File Structure and Fragmentation 

Considerations 1 88 
Other Subboard Maintenance Options and 

Considerations 190 



CHAPTER 10 - The Text Editors 


193 


The Line Editor 


193 


Automatic Paragraph Formatting System 


197 


Control Keys 


197 


The Visual Editor 


198 


The Draw Editor 


201 


The Message Command Interpreter (MCI) 


203 


The Visual Data Editor 


210 


CHAPTER 1 1 - The Pfiles, Gfiles, and 




News Files Areas 


211 


Adding Items 


212 


Editing Items 


213 


Executing Items 


215 


Swinging the Branches of the Subdirectory Tree 


216 


Restricting Access to a List of Items 


217 


The DOS Shell Interface 


217 


The CNet C Command Interface 


218 


The AREXX Command Interface 


218' 


How to form GetUser and PutUser arguments 


225 


Table of GETUSER values 


226 


CHAPTER 12 - Inter-user Communication 


229 


On-line messages (OLM's) 


229 


Hiding and Muffling 


230 


User logon/logoff Monitor 


232 


Inter-user Chat 


232 



IV CNet PRO 3 Bulletin Board Service 



The "join" Teleconference 233 

The Conference Room Commands 234 

User Conference Preferences 236 

Conference Room Preferences 237 

Port Monitoring 239 

Remote Terminal System 239 

Join-link 240 

CHAPTER 13 - Networking: FidoNet and UUCP 245 

Connecting your computer to the FidoNet network 245 
Connecting your CNET B BS to the FidoNet network 247 
The AreaFix Utility 249 

Connecting your BBS to FidoNet without using Toss 250 
The Internet, UseNet, and UUCP networks 250 

Connecting your computer to the UUCP network 254 
Connecting your CNet BB S to the UUCP network 254 

CHAPTER 14 - System Maintenance 257 

Maintenance Commands 257 

The On-line Shell 260 

The Maintenance Pfiles 260 

Automaintenance 262 

CHAPTER 15 - Modifications and 

Customization 263 

Definitions of Systext: Files 263 

Making Modifications to BBSTEXT 266 
Making Modifications to BBSMENU -- 

Adding or Changing BBS Commands 267 

Using Multiple Graphics Sets 269 

Using Multiple Language or Text Sets 270 

CHAPTER 16 - Electronic Mail 275 

~~~ Sending Mail to Other Users 275 

' Sending Mail via Fido-Net 276 

Sending Mail via UUCP 278 

Reading your Mail 279 

Verifying Mail You've Already Sent 282 

Sending Bulk and Party Mail 283 

Sending Files via E-Mail 284 



Introduction and Glossary of ? Terms 1 



System Overview and Glossary 

Welcome to the exciting world of telecommunications on 
your Commodore Amiga computer! CNet PRO version 3 
for Commodore AMIGA® is an extremely powerful 
program, designed to make optimum use of the Amiga's 
built-in features. This preface has been added to the CNet 
manual to help you understand some of the technical terms 
we will use later. If you are new to computing on the 
Amiga, or if this is your first time running a Bulletin Board 
System (BBS), you are invited to peruse this list of terms 
before you try to tackle the task of installing and running 
CNet. 

If you are already an Amiga "power user" with a thorough 
understanding of the AmigaDOS command shell, or if you 
are familiar with CNet from previous experience, you may 
safely skip this preface and move on to Chapter 1 . 

Glossary of commonly used terms 

The following terms are referenced in the Index at the end 
of the book for your convenience if you need to look them 
up again later. Some of the items in all capital letters are 
AmigaDOS commands which can be used from the Shell or 
in script files. In general, the computer does not care 
whether you type them using capital or small letters. 

Access 

The dictionary defines access as a way to get into or reach a 
place. In computing, we often say, "I'm accessing my 
files." to indicate when we are using those files in any way. 
The CNet BBS allows you to define access groups" which 
precisely limit and define the places and activities users can 
reach. 



2 CNet PRO 3 Bulletin Board Service 



AmigaDOS 

DOS means Disk Operating System. AmigaDOS is 
different from the IBM DOS, which alienates some people 
who are used to the other system. AmigaDOS and its 
commands form the interface between the Amiga computer 
and its disk devices. You will have to learn to use some of 
those commands in order to install CNet. 

ANSI 

American National Standards Institute (ANSI) creates 
standards for computer languages and procedures. CNet 
AMIGA supports a large number of ANSI 
telecommunication procedures for sending and receiving 
text color changes, tabbing, cursor movement, etc. Callers 
to your system who are using ANSI terminal programs will 
be able to use and view the BBS much as you see it from 
your local screen. 

Archive 

An archive is a single file which contains several other 
files, usually compressed into a smaller number of bytes, if 
possible. Several archiving utility programs have been 
included with CNet and will be installed in your C: 
directory automatically. Programs which are copied to C: 
become usable as Shell commands. 

AREXX 

AREXX is a flexible and easy to use "script" language 
which is highly recommended for use with CNet. It comes 
with AmigaDOS 2.x, or is widely available for separate 
purchase. 

Argument 

An argument is a piece of information you enter after a 
command to tell the system exactly how you wanted that 
command executed. 



Introduction and Glossary of Terms 3 



American Standard Code for Information Interchange 
(ASCII) is a numbered list of the letters, numbers, and 
symbols we use to communicate. It is the generally 
accepted standard by which data is transferred from one 
computer to another. 

ASSIGN 

This AmigaDOS command allows you to give alternate, 
shorter names to directories, in effect letting you address 
them AS devices. This is a VERY important command to 
master. Devices (such as DFO;, the floppy drive) are 
always addressed with a colon (:) after their names. Thus 
the command "DIR DFO:" will cause the system to look for 
a disk in the internal floppy drive and tell you what is on it. 
By issuing the command: 

ASSIGN MYFILES: Work:JimStuff/misc I 



you create a pseudo-device called "myfiles:". Then if you 
command "DIR MYFILES:", the system will give you the 
contents (if any) of the subdirectory on your hard drive at 
the end of the path you specified. (It has to exist!) 

BaudRate 

The speed of data transfer in BPS (bits per second). 

CLanguage 

CNet AMIGA is written entirely in C language and much 
of the Amiga's own operating system is also written in C. 
If you learn C, you can create your own add-on modules to 
enhance and modify CNet's operation. •=■' 

CD 

This AmigaDOS command changes the Current Directory 



4 CNet PRO 3 Bulletin Board Service 



(or storage device) being used by the command Shell, and 
by the programs you launch from it. 

CU 

Command Line Interface: the same as the Shell. "CLI" is 
the original name for the Shell used in earlier versions of 
the AMIGA and its DOS. 

COPY 

This AmigaDOS command copies files from one place to 
another. If files being copied are inside a subdirectory 
structure, the necessary subdirectory(s) are automatically 
created on the destination device. 

Default 

Many system commands and functions have an action they 
take "by default" if no argument is given. For example, if 
you enter the Shell "DIR" command by itself, a directory of 
the files on the current active directory (CD) will be 
displayed. To see the contents of the RAM: device instead, 
you would supply the argument: "DIR RAM:". Commands 
and utilities which REQUIRE arguments will generally 
either give you an error message ("missing device name") 
or a quick list of the required arguments. Utility programs 
in C language often will print out a lengthy "help" text 
message if you type their name ONLY without arguments. 
Most of the archiving programs (like ZIP) included with 
CNet will do this. You can send that help text to your 
printer by using a "redirection" argument, like this: 
"ZIP>PRT:" 

Device 

A hardware "device" is anything the computer can send or 
receive data to or from, like a disk drive, modem, printer, 
even the screen and keyboard are devices. Amiga devices 



Introduction and Glossary of Terms 5 J 



are always addressed with a colon (:) after their name, as in 
DFO: or PRT:. The Amiga also uses SOFTWARE devices. 
This is an EXTREMELY powerful feature, too involved to 
be explained here. CNet comes with a special "device 
handler" which allows AmigaDOS functions to be used 
over the modem. See also the ASSIGN command for a 
description of how you can create device names for any 
disk partition or subdirectory. 

DIP Switch 

A group of tiny switches placed together in a row of 
(usually) from 4 to 12. Often DIP switches are found on 
the backs or inside printers and modems. Each switch 
controls an operating function as defined in the instruction 
manual for that device. 

Directory 

A listing of the names of all the files in a disk storage area. 

Download 

You are downloading when you transfer data INTO your 
computer from an outside source. This contrasts with 
uploading, where you send data OUT to another 
destination. 

dtr 

Data Terminal Ready (DTR) is the name given to one of 
the wires in the cable between your computer and the 
modem. Most new modems support "DTR Hangup", 
which simply means that the modem will instantly 
disconnect the phone call in progress if you turn the DTR 
signal off for a second and then turn it back on again. 
Many modems have a status light which reflects the current 
DTR (or TR) on or off condition. You must be using a 
fully wired modem cable in order to use this function. See 
your computer dealer if you are not sure. 



6 CNet PRO 3 Bulletin Board Service 



ENDCU 

This AmigaDOS command exits the current Command 
Shell and closes the Shell screen window. 

EXECUTE 

This AmigaDOS command causes the system to open a 
script file containing other AmigaDOS commands and 
execute those commands in order. After the commands are 
completed, control will return to the process from which the 
EXECUTE command was issued. 

Extract 

When you encounter an archived file which contains one or 
more other files grouped and compressed together, the 
process of taking those files apart and reconstituting them 
in their original form is called extraction. 

Feedback 

A private message to a BBS system operator. 

Fido 

An international networking system (FidoNet). CNet PRO 
includes a FidoNet message packer and tosser system, and 
needs only the addition of a "front end mailer" (usually 
"TrapDoor") program to make full use of FidoNet. 

File 

A collection of information stored under a single title 
(filename), usually on a storage device such as a disk. Files 
can be simple data, such as a text message, or a file can be a 
program or executable script which makes the computer 
perform a task. 



Introduction and Glossary of Terms 7 



File Transfer Protocol 

A special program designed to send or receive information 
between two computers. Most protocols automatically 
detect errors and re-send data until it is confirmed to be 
correct. This helps insure 100% accurate transfers over the 
modem, even if line noise causes problems. The computers 
at both ends of the file transfer MUST be using compatible 
file transfer protocol software. 

Font 

The style of type and character set you select to see on your 
local screen. Changing your font will NOT make any 
difference on the screen of a remote (modem) user. 

Gadget 

The little boxes, arrows, screen sizers, etc. that you can 
manipulate with your Amiga's mouse are called gadgets. 

GSJes 

CNet AMIGA maintains an area for your users where you 
may make text and/or graphic files available for them to 
read. Gfiles is short for "General Text Files". 

Handle 

An assumed name used by a BBS user. 

Hayes 

A manufacturer of computer modems. The Hayes modem 
command set has become the standard in the 
telecommunications industry. Modems which conform to 
that standard are said to be "Hayes Compatible". 



8 CNet PRO 3 Bulletin Board Service 



Icon 

A small picture on your workbench screen which will 
usually activate a program or open a screen window when 
you click with your mouse pointer on it. 

Iconify 

Some programs (like CNet's "Control") can close down 
their screens to save memory while remaining active in the 
background. A special icon is created to allow you to bring 
the program screen back. 

inter&ce 

Two different programs which pass data between them are 
said to interface together. Also, a device to allow two or 
more pieces of hardware to communicate with each other is 
called an interface. 

Kilobyte 

1,024 bytes. 

Libraries 

The Amiga uses collections of special short programs 
(called functions) to perform special jobs (such as 
mathematical operations). These collections are called 
libraries and can be found in the LIBS: directory. CNet 
uses special library files for file transfer functions. The 
included libraries will be automatically installed when you 
set up the BBS. It is possible to install additional file 
transfer libraries. Many of CNet's most frequently needed 
routines are stored in the file "libs:CNet.library". 

Line Noise 

Static or other interference on the phone line which 
introduces spurious "garbage" characters into the data being 
sent over the modem. 



Introduction and Glossary of Terms 9 



Local 

BBS operations which are performed or apply ONLY to the 
local console and keyboard are referred to as being local. 
This contrasts with online or remote operations. When you 
activate Local Mode with a user online, input and output 
from the modem are suspended so the user cannot see what 
you are doing. 

Logical Name 

A name which the system can use to locate a place it would 
need to send or receive data to or from. Logical names can 
be assigned to devices, subdirectories, or even files. Hard 
drive partitions are addressed using logical names. 

Logical Unit 

When a hard drive partition is assigned a logical name so 
the computer can address it as though it was a separate hard 
drive unit, that partition is sometimes referred to as a 
logical unit. 

Logon 

A user "logs on" to a BBS when they connect, give their 
password, and are allowed to enter the system. 

Macro 

A string of characters which can be entered by typing only 
one key or key combination. Also, AREXX language 
script files are often called macros. 

MAKEDIR 

This AmigaDOS command is used to create a new 
subdirectory on a disk drive. Subdirectories on the Amiga 
are also called "drawers", and can be nested inside each 
other. 



1 CNet PRO 3 Bulletin Board Service 



Megabyte 
1,048,576 bytes. 

News 

On CNet BBS the SysOp may post news bulletins for users 
to read when they enter the system. News files can be 
made mandatory (non-abortable), and/or recurring, so the 
user sees the same bulletin every time they call Normal 
news files are displayed only once and can be aborted if the 
user is not interested. 

Online 

System operations which are conducted from a remote 
computer over the modem, are referred to as online 
operations. This contrasts with local operations which are 
conducted from the console keyboard and screen only. 
Also, when you connect your computer to an active phone 
line and make it ready to take BBS calls, you are said to be 
putting your BBS online. 

Partition 

A separate area on a hard drive. Most hard drives can be 
divided into several partitions for convenience in keeping 
files and data isolated Partitions are generally addressed 
by the Amiga as though they were completely separate 
drive units. Each partition may have its own directory and 
subdirectories. 

PGIes 

CNet allows you to set up a special area where users can 
make use of additional, external program modules called 
Pfiles. These can be games, utilities, or even extentions of 



L Introduction and Glossary of Terms 1 j j 

the BBS itself. Almost any CLI (Shell) based executable 
file written in C language, AREXX, or AmigaDOS script 
can be used as a Pfile, as long as its input and output can be 
diverted over the modem by CNet. 

Pixel 

A single dot on the screen. Usually the smallest screen area 
the computer can address. 

Port 

A place where the computer communicates with peripheral 
devices. The modem is generally connected to the serial 
port, which is set up as a 25 pin connector called an 
"RS-232" port If you wish to operate more than one phone 
line on your CNet BBS, you will need to add more serial 
ports to the Amiga. This can be accomplished by using a 
multi-serial port card such as Commodore's 2232 card. 

Prompt 

A place where the system stops and waits for input from 
the user. Most prompts are in the form of a short text 
message describing what kind of information is required. 

Protocol 

A formal set of communication procedures between two 
different systems. See also; File Transfer Protocol. 

RAM 

Random Access Memory. The kind of memory that your 
Amiga uses to run programs and store data. You may have 
to add more RAM to your system by purchasing either 
more chips to plug in, or a separate memory expansion 
card. Also, the "RAM:" device is a simulated disk drive 
which uses RAM only for data storage. It is very fast and 



1 2 CNet PRO 3 Bulletin Board Service 



is often the best place to store data which is replaceable but 
needed often. 

RESIDENT 

If you have enough RAM memory on your Amiga, some 
programs (like CNet) can be made resident by using this 
AmigaDOS command. That means that they are stored in 
memory all the time so the system does not have to take 
time to go back to the disk drive every time they are 
needed. 

RS-232 

The standard by which the serial modem port is wired. 

Run 

This AmigaDOS command is used to start a program from 
the CLI (Shell). The main advantage of of using the RUN 
command over simply typing the name of the program, is 
that a new window is created, allowing you to go back to 
the Shell if necessary and type more commands. 



Script File 

A text file containing a list of AmigaDOS (or AREXX) 
commands to be executed in the order given. Script Files 
are started using the Execute command. 

Serial Port 

(See Port) The place on the back of the Amiga where you 
plug in the modem cable. The computer sends and receives 
data "serially" here, or one bit at a time. That contrasts 
with the parallel port where data is transferred several bits 
at once. 



Introduction and Glossary of Terms 1 3 



Shell 

The Shell is a window into which you can type AmigaDOS 
commands, many of which are mentioned in this glossary. 
You will have to have a Shell window open at all times in 
order to run CNet BBS. 

Startup-Sequence 

This is the name of a text file you will find on the S: 
directory of your hard drive. It is an AmigaDOS script file 
which contains a list of steps the system must perform in 
order to start itself up. AmigaDOS 2.x users will generally 
NOT add modifications to this file but will change the 
S:User-Startup file instead. 

Subboard 

In CNet you will allowed to establish separate areas for 
both public messages and file transfers. Each of these areas 
is called a subboard, and each can be set up with its own set 
of restrictions and attributes. 



SubOp 

A system user who has been given access to special 
maintenance commands on one or more subboards is called 
a SubOp, or Subboard Operator. 

SysOp 

As main BBS System Operator, you are the SysOp. You 
will want to set up a special access group for yourself only, 
containing all of the special reserved maintenance 
capabilities. Also, you will need to log on to the BBS as 
the FIRST New User before you actually place the system 
online. That will define your account as the first one in the 
system user file. 



1 4 CAfcf PRO 3 Bulletin Board Service 



Terminal 

A program that allows your computer to communicate with 
another computer, usually over the telephone line via 
modem. Anyone wishing to call your BBS will have to be 
running a terminal program on their computer. CNet 
includes a simple terminal program for your convenience 
should you wish to call out to another computer without 
taking the BBS down. 

Text Editor 

A program which allows you to create new text files, or edit 
existing ones. In general a text editor differs from a word 
processor in that the text editor will save "raw" text without 
any special formatting characters added. While many word 
processors have "save text only" modes, it is SAFEST to 
use a simple text editor when you are creating or editing 
CNet files. 

Upload 

You are uploading when you send data OUT from your 
computer to an outside destination. This contrasts with 
downloading where you are transferring data IN to your 
computer. 

UseNet 

An international networking system originating on UNIX. 

User 

A member of your BBS who calls in via modem and 
participates. 

User-Startup 

A text file which can be used by AmigaDOS 2.x systems. 
As noted in the CNet installation instructions, AmigaDOS 



Introduction and Glossary of Terms 1 5 



1.3 users will make the indicated changes to their 
SrStartup-Sequence file. 2.x users will make the changes 
instead to S:User-Startup. 

UUCP 

Another name for UseNet, the UNIX network. 

Validate 

New users to the system are allowed limited access. As 
SysOp you will validate users by confirming their identity 
and assessing their desirability, then assigning them a 
higher access group accordingly. 

Workbench 

The Amiga's powerful icon based Graphical User Interface 
(GUI). This is the screen where all the disk icons appear 
and can be selected using the mouse. Workbench is 
actually a program itself, which is started in the 
Startup-Sequence file by the command "LoadWB". Since 
CNet is operated from the Shell, you may wish to eliminate 
Workbench entirely in order to save memory. That can 
safely be done by removing the "LoadWB" command from 
the Startup-Sequence. 



1 6 CNet PRO 3 Bulletin Board Service 



System storage areas Used by CNet BBS 

When you install CNet following the procedures in this 
manual, several special storage areas for the use of the 
Bulletin Board System will be automatically created on 
your hard drive. This is a summary of those areas. 

CNET: The main directory which usually contains 

all the other BBS files, including: 

News: Where system news bulletins are stored. 

Gfiles: General text files. 

Pfiles: Games and utilities in 'C, AREXX, or 

AmigaDOS 

Mail: Private mail between system users. 

UDBasex: File transfer/message base area, (x = 0-23) 

Basex: Message/file transfer base area, (x = 0-23) 

SysData: Data files about the system and your users. 

SysText: Storage for text files displayed on the BBS. 

If you follow the normal setup instructions, these areas will 
be created on your hard drive. After you install CNet, 
pointers to these storage areas are set up automatically 
every time you turn on or reboot your Amiga. A series of 
AmigaDOS ASSIGN statements does the job. The 
intallation utility program adds the necessary assigns and 
many other important lines onto the end of your 
s:User-Startup file. You may use a text editor to carefully 
change these lines at any time. 



Introduction and Glossary of Terms 1 7 



ONWARD! 

It is hoped that this opening chapter has helped clarify 
some terms and concepts you will encounter later. It is not 
meant to take the place of more detailed texts about 
AmigaDOS and the Amiga computer. 

Mainly, this is simply the glossary that I wish had been 
provided for me when I first started out in computing and 
telecommunicating. 

Good Luck, and I'll see you on the nets! 

Jim Selleck 

June 16, 1992 for Version 2 

Revised and updated December 25, 1993 for Version 3 



Logic is the beginning of wisdom, not its end. 

-Spock (paraphrased from Star Trek VI) 



1 8 CNet PRO 3 Bulletin Board Service 

Notes: 



Introduction 19 



CHAPTER ONE - Welcome! 

Welcome to CNet version 3, the most complete and 
comprehensive Bulletin Board System (BBS) software 
available for the Commodore Amiga line of personal 
computers. CNet is the product of several years of 
continuous, constant, and determined software engineering. 
CNet has been and always will be an ongoing 
project-many exciting features and enhancements still 
await future versions of CNet! 

Don't be fooled, running a BBS is hard work. You have to 
spend long hours maintaining a computer system that may 
be in constant use by hundreds of people, maybe several at 
a time. You may have to listen to their complaints, cater to 
their needs, and even entice them to use your BBS instead 
of "the competition." And then there is the "small" matter 
of the phone bill! 

All that aside, running a BBS can be one of the most 
rewarding activities you have ever undertaken. A BBS can 
be a very social place-innumerable friendships, and even 
marriages have resulted from people "meeting" on these 
electronic hang-outs. If you run your BBS as a hobby, it 
will provide you with hours of entertainment. Instead of 
calling as many other BBSs as you may have, your own 
users will bring conversation and computer programs right 
to your fingertips. If you run your BBS for profit, CNet 
will provide a courteous and professional interface to your 
business. Your BBS may even provide a valuable 
community service. 

About your CNet documentation 

It is our goal to make CNet quick and easy to initially 
install. Whether you are new to CNet, or if this is your 
tenth update, carefully follow the instructions in the 
installation chapter. Then, once you have CNet up and 



20 CNet PRO 3 Bulletin Board Service 



running with a minimal configuration, this manual is 
intended to be used as a "reference tool" to expand your 
system and to learn about and to take advantage of the 
many advanced features that CNet has to offer. 

The manual is organized by "topic," not necessarily strictly 
by command menu and prompt. This makes learning about 
specific topics easier than having to reference commands 
and data fields located throughout different chapters. The 
index at the end of the manual provides an easy way to 
locate exactly what you are interested in. 

One thing we have learned over the years of writing these 
CNet instruction books is that different people learn 
technical stuff in different ways and at different speeds. We 
can only present the information here one way, so we have 
to decide which method will reach the most readers. Alas, 
however, we cannot reach every reader with every example. 
Please be patient with us and with yourself. Make sure that 
you have learned all you can about your Amiga computer 
first before you try to tackle installing CNet. It is beyond 
the scope of this manual to show you how to invoke and 
use the Amiga's "Shell" Command Line Interface to 
directly type commands. But it will be necessary for you to 
USE the Shell occasionally to install and administer your 
BBS. 

If you simply cannot find the answer to a question here in 
the book, take heart! You may call our 24 hour customer 
service BBS, called Future World. See the paragraph titled 
"Getting Help" later in this chapter. 

System requirements 

CNet will operate on any model of Amiga personal 
computer running the AmigaDOS Operating System 
version 2.04 or newer. CNet requires at least two (2) 
Megabytes of RAM for a minimal configuration. More 



Introduction 21 



memory is recommended for a multi-user BBS and to 
improve system efficiency. CNet requires installation onto 
a hard drive (of any capacity). CNet will work with all 
"Hayes-compatible" modems. 

New features of version 3.0 

If you have used earlier versions of CNet, you will find 
many improvements in version 3.0. These improvements 
include new commands and programs that make using the 
BBS easier and more efficient. Version 3.0 includes the 
following new or improved features: 

o Account locking to maintain user data integrity on busy 

multi-user systems 
o All new and more powerful event scheduler 
o Use up to 1 00 ports 
o Many improvements to Join and JoinLink, including 

automatic JoinLink dial-ups 
o TermLink allows "restricted" dial-out 
o Commands like EL, EA, EG and AT take RANGES of items 

to make changes to multiple items at once 
o Caller-ID has been more fully integrated 
o The visual editor has a fully-featured and expandable spell 

checker 
o A built-in ANSI-sequence editor 
o Support for access groups 0-31 
o Executables to import and export UUCP mail and UseNet 

newsgroups 
o Complete Fido-Net netmail support 
o A "cnetlibrary" to hold commonly called routines 
o The DOS interface has been replaced with Matt Dillon's 

FIFO routines 
o CD-ROM support has been more fully integrated 
o Users may batch upload short description files 
o XPR-TASK is GONE! Use of Machine Language allowed 

transparent coding of this file 
o The BBS List has an auto-purge feature 
o CNet has a FAST integrated FidoNet tosser/packer 



22 CNet PRO 3 Bulletin Board Service 



Getting help 

If you have a question about CNet, first consult this guide. 
For information not available in time to be printed in this 
guide, a "support" directory exists on the CNet distribution 
disks. This directory contains text files of documentation 
updates, tips, helpful hints, and answers to commonly 
asked support questions. 

Perspective Software and Beverly James Products operate 
Future World, a 24 hour customer support BBS. This CNet 
BBS operates with six high speed modems, five of them 
v.32 and one an HST dual standard. Future World's 
primary dial-up number is currently 313-255-2466. Our 
current FidoNet address is 1:2410/215. Hundreds of other 
CNet sysops call this BBS, and it is an excellent source of 
help, encouragement, and support. Future World is the 
primary source for CNet updates and news—as a registered 
owner of CNet, you are entitled to download all version 
"3.X" updates for free! Hundreds of program files 
("doors") and other enhancements are also constantly 
available and being updated on Future World. 

If you wish to write to us, the address is: 

Perspective Software 
P. O. Box 87175 
Canton, MI 48187 

If you have suggestions for the further improvement of 
CNet, please do not hesitate to write or to share them with 
us online at Future World. CNet has been built upon the 
ideas and suggestions of its sysops and users. 

The Registration Card 

It is very important that you fill in your registration card 
and mail it back to us. This card will allow us to mail you 



Introductioa 23 



notifications of upcoming releases and CNet related 
activities. It also serves as a proof of purchase so that you 
may obtain support and full access to Future World BBS. 

Perspective Software License Agreement 

IMPORTANT-READ CAREFULLY BEFORE OPENING 
SOFTWARE PACKET(S). 

This is a legal agreement between you (either an individual 
or an entity) and Perspective Software. BY OPENING 
THE SEALED SOFTWARE PACKAGES AND/OR BY 
USING THE SOFTWARE YOU ARE AGREEING TO BE 
BOUND BY THE TERMS OF THIS AGREEMENT. IF 
YOU DO NOT AGREE TO THE TERMS OF THIS 
AGREEMENT, PROMPTLY RETURN THE UNOPENED 
DISK PACKAGES AND THE ACCOMPANYING ITEMS 
(including written materials and binders) TO THE PLACE 
YOU OBTAINED THEM FOR A FULL REFUND. 

1. GRANT OF LICENSE. This License Agreement 
permits you to use one copy of the enclosed Perspective 
Software program (the "SOFTWARE") on a single 
computer. The SOFTWARE is in "use 1 * on a computer 
when it is loaded into temporary memory (i.e., RAM) or 
installed into permanent memory (e.g., hard disk or other 
storage device) of that computer. 

2. COPYRIGHT. The SOFTWARE is owned by 
Perspective Software and is protected by United States 
copyright laws and international treaty provisions and all 
other applicable national laws. Therefore, you must treat 
the SOFTWARE like any other copyrighted material (e.g., 
a book or musical recording) except that you may either (a) 
make one copy of the SOFTWARE solely for backup or 
archival purposes, or (b) transfer the SOFTWARE to a 
single hard disk provided you keep the original solely for 



24 CNet PRO 3 Bulletin Board Service 



backup or archival purposes. You may not copy the user 
documentation provided with the SOFTWARE. 

3. OTHER RESTRICTIONS. You may not rent or lease 
the SOFTWARE, but you may transfer the SOFTWARE 
and user documentation on a permanent basis provided you 
retain no copies and the recipient agrees to the terms of this 
Agreement. If you transfer the software, make sure to send 
a note to Perspective Sofware including the serial number, 
the CNet version, the new owner's name and address, and 
the transfer fee of $15.00 (US). You may not reverse 
engineer, decompile, or disassemble the SOFTWARE. If 
the SOFTWARE is an update or has been updated, any 
transfer must include the most recent update and ALL prior 
versions. 

If you acquired this product in the United States, this 
Agreement is governed by the laws of the state of 
Michigan. If this product was acquired outside the United 
States, then local law may apply. 

Contact Perspective Software if you have any questions 
about this Agreement. 

Limited warranty 

LIMITED WARRANTY-Perspective Software warrants 
that the hardware (disk media) on which the SOFTWARE 
was supplied will be free from defects in materials and 
workmanship under normal use and service for a period of 
ninety (90) days from the date of receipt. Perspective 
Software makes no warranty concerning the SOFTWARE. 
The SOFTWARE is provided "AS-IS" without warranty of 
any kind. 

CUSTOMER REMEDIES-Perspective Software and its 
suppliers' entire liability and your exclusive remedy shall 



Introduction 25 



be, at Perspective Software's option, either (a) return of the 
price paid, or (b) repair or replacement of the SOFTWARE 
or hardware that does not meet Perspective Software's 
Limited Warranty and which is returned to Perspective 
Software with a copy of your receipt. This Limited 
Warranty is void if failure of the SOFTWARE or hardware 
has resulted from accident, abuse, or misapplication. Any 
replacement SOFTWARE or hardware will be warranted 
fro the remainder of the original warranty period. 

NO OTHER WARRANTIES-TO THE MAXIMUM 
EXTENT PERMITTED BY APPLICABLE LAW, 
PERSPECTIVE SOFTWARE AND ITS SUPPLIERS 
DISCLAIM ALL OTHER WARRANTIES, EITHER 
EXPRESS OR IMPLIED, INCLUDING, BUT NOT 
LIMITED TO IMPLIED WARRANTIES OF 
MERCHANTABILITY AND FITNESS FOR A 
PARTICULAR PURPOSE, WITH REGARD TO THE 
SOFTWARE, THE ACCOMPANYING WRITTEN 
MATERIALS, AND ANY ACCOMPANYING 
HARDWARE. THIS LIMITED WARRANTY GIVES 
YOU SPECIFIC LEGAL RIGHTS, YOU MAY HAVE 
OTHERS WHICH VARY FROM STATE TO STATE. 

NO LIABILITY FOR CONSEQUENTIAL 

DAMAGES--TO THE MAXIMUM EXTENT 
PERMITTED BY APPLICABLE LAW, IN NO EVENT 
SHALL PERSPECTIVE SOFTWARE OR ITS 
SUPPLIERS BE LIABLE FOR ANY DAMAGES 
WHATSOEVER (INCLUDING WITHOUT LIMITATION, 
DAMAGES FOR LOSS OF BUSINESS PROFITS, 
BUSINESS INTERRUPTION, LOSS OF BUSINESS 
INFORMATION, OR ANY OTHER PECUNIARY LOSS) 
ARISING OUT OF THE USE OF OR INABILITY TO 
USE THIS PERSPECTIVE SOFTWARE PRODUCT, 
EVEN IF PERSPECTIVE SOFTWARE HAS BEEN 
ADVISED OF THE POSSIBILITY OF SUCH 



26 CNet PRO 3 Bulletin Board Service 



DAMAGES. BECAUSE SOME STATES DO NOT 
ALLOW THE EXCLUSION OR LIMITATION OF 
LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL 
DAMAGES, THE ABOVE LIMITATIONS MAY NOT 
APPLY TO YOU. 

If you acquired this product in tie United States, this 
Agreement is governed by the laws of the State of 
Michigan. If this product was acquired outside the United 
States, then local law may apply. 



Installation 27 



CHAPTER 2 - Installation 

If you are updating from another version of CNet, the first 
thing to do is to BACK UP your current system. If 
something goes wrong, you can temporarily return to your 
old configuration. 

Manual or Automatic? 

CNet PRO version 3 is the first incarnation of CNet to 
come with an automatic installation utility, Previous 
versions all had to be installed using Copy commands from 
the AmigaDOS Shell prompt. This was done because BBS 
operators were assumed to be computer "hackers" who 
would be more comfortable with the "command line" 
interface than with pointing and clicking on little graphic 
boxes. In fact, there are computer people out there to this 
day who refuse to touch a mouse unless as a last resort. 

However, as CNet and Bulletin Board Systems in general 
have become more popular, we have had in increasing 
number of requests to move to the GUI (Graphical User 
Interface) to make the system accessible to casual Amiga 
users as well as those rugged pioneers who bravely 
navigate the command line frontier. 

This movement into the point-and-click realm has resulted 
in CNet becoming more powerful than ever, and even the 
old hackers have to admit that system setup is now 1,000 
times faster and easier. 

Having said all that, we have decided to include a section 
on manual installation and updating just in case it is needed 
for Amiga systems having very unusual configurations 
where the automatic installation utility might to too generic 
to use. 

For 999 out of 1,000 systems out there, all you have to do 
is insert CNet PRO BBS disk #1 and double-click on the 
Install_CNet icon! Follow the instructions as they come 
up. Don't expect to have a fully operational BBS up and 
online in just five minutes. This is an extremely powerful 
system, and it is not unusual for system operators to 
continue tweaking and modifying their CNet configurations 
for many months. In fact, thats part of the FUN! 



28 CNet PRO 3 Bulletin Board Service 



Note for Updating CNet SysOps 

Those updating from CNet 2.x can use the automatic 
installer too! Your BBSMENU and BBSTEXT files will 
NOT be touched so that you can transfer any changes and 
modifications you have made into the new 3.0 files. Please 
use the detailed instructions later in this chapter to 
determine which files from the Updating directory you will 
have to run in order to convert your 2.x BBS data files over 
to 3.0 format. AND MAKE CERTAIN YOU HAVE A 
COMPLETE SYSTEM BACKUP before converting, just 
in case something goes wrong!! 

What to do next 

If you carefully followed the instructions in this chapter, 
congratulations! Chances are that you now have an 
operational BBS (local mode only). The default 
configuration in place is minimal— use of only one hard 
drive partition and no modems. 

Before expanding the BBS configuration, take some time to 
become familiar with CNet in local mode. Read the control 
panel and BBS GUI chapter. Then, work your way up to 
the CONFIG program. From the CONFIG program, you 
can change many defaults and options. Modem ports may 
be added and configured from the CONFIG program. 

In no time at all, you will be ready for your first caller! 

Manual Installation Procedure 

All installation described in this chapter is done from the 
Shell prompt. If CNet is currently running, quit from it. 

Modifying your startup -sequence file 

The default AmigaDOS 2 startup-sequence file contains 
lines to "loadwb" and then "endcli." In a BBS environment, 
you will NOT want to do this. It is advisable to keep the 
original "background CLI" open during BBS operation. 
Using a text editor like MicroEMacs or CygnusEd, edit the 
file "srstartup-sequence." Add a semicolon (;) to the 
beginning of each of the "loadwb" and "endcli" lines to 
nullify them. Then, at the end of the file, add this line: 
execute s:startup-cnet 



Installation 29 



Installation of system files 

Insert the CNet distribution disk with the "workbench" 
directory. From the Shell, use the CD command to make 
the workbench directory the "current" directory. Use the 
following commands to install the system files: 

copy C C: 

copy L L: 

copy S S: 

copy LIBS LIBS: 

copy fonts fonts: ALL 

Choosing a location for CNET: 

Create a directory on your hard drive for CNet by first 
using the CD command to make your hard drive the 
"current" directory (eg., "cd dhO:"). Then, use the 
command "makedir cnet." 

If you have more than one hard drive, or more than one 
partition, you may install CNET: onto one of the smaller 
ones. Most sysops prefer to reserve the larger hard drives 
or partitions for strictly file transfers. 

Modifying your startup-cnet file 

Use a text editor like MicroEMacs or CygnusEd to edit the 
"S:startup-cnet" file. The first "assign" command has a 
path for the "cnet" directory. If necessary, change this path 
to reflect the path to the directory you just created (eg., 
"dhlxnet" or "dh2:cnet" etc.). 

If you have more than one hard drive or partition for the 
BBS, additional assignments may be added to this file later 
after you have read the "partitions" section of the 
subboards chapter. 

Installation of CNet files 

Insert a CNet distribution disk with a "cnet" directory on it. 
Use the CD command to make the floppy drive the 
"current" directory. 

NOTE: Some of the directories MAY contain files which 
have been "archived" together (such as SYSTEXT:) to save 
space using the LhA archiver. You will have to UNPACK 
those files after they are copied! 



30 CNet PRO 3 Bulletin Board Service 



Use the command "copy cnet dhOxnet all" to transfer the 
CNet files to your hard drive. Change the "dhO:" in the 
above command to reflect the hard drive that your "cnet" 
directory was created on. Repeat this procedure for each 
CNet distribution disk that has a "cnet" directory on it 
(there will be at least two disks that do). 

If this is your first CNet installation, you are ready to 
re-boot your machine and check your installation. If 
everything was installed correctly, you should see the 
control panel open, load port (configured as a local mode 
only port), and then iconify. 

Updating from version 2.X 

You only need to read this section if you are currently 
running CNet version 2 on your system. NOTE if you are 
running CNet version 1 , conversion programs from version 
1 to 3 are not available at this time. 

Before continuing, please double check that you have 
followed the above instructions and that all version 3 
executables and configuration files are in their correct 
directories. As before, CNet should NOT be running at this 
time. 

There are a varying number of steps involved in the 
conversion from version 2.X to version 3, depending upon 
what the 'X' in "2.X" is. Make a note of what your current 
version number is (as displayed when you first connect to 
the BBS), and then read and execute the following 
instructions with care. 

If you are updating from 2.20d or earlier, 
delete vote:#? all 
makedir sysdatarvote 
makedir sysdatarbbslist 

rename sysdatarbbslist.index sysdata:bbslist/index 
rename sysdata:list.#? sysdata:bbslist/#? 

If you are updating from 2.37z or earler, 

rename "systextrsys.new user" systext:sys.nuser 

makedir pfiles:data 

rename pfiles:_Items2 pfiles:data/_Items2 



Installation 31 



rename pfiles: dirinfo pfilesrdata/ dirinfo 
rename pfiles: sys.start pfiles:data/sys.start 
rename pfilesCsys.exit pfiles:data/sys.exit 

repeat the last 5 commands for gfiles:, news:, and 
all subdirectories in these areas (like pfiles: maintenance 
now contains pfiles: maintenance/data, etc.). 

If you are updating from 2.39z or earlier, 
delete cnet:bbsed 
delete cnet:bbsproto 
delete cnet:bbsarc 
delete cnet:bbsport#? 

If you are updating from 2.40d or earlier, 
delete cnet:bbslog 
delete cnet:bbscolors 
delete cnet:bbscharges#? 

If you are updating from 2.40z or earlier, 
delete sysdata:passwords 
delete cnet:bbsevent#? 

If you are updating from 2.58z or earlier, 
delete sysdata:vote/#? all 
delete cnet:bbscontrol3 

The following files are obsolete, and should be deleted: 
delete cnet:xx 
delete cnet:yy 
delete cnet:xpr-task 
delete cnet:bbsconfig 
delete cnet:bbscontrol 
delete systext:sys.conf.noises 
delete systext:sys.passwords 
delete sysdata:bbs.alpha 
delete Lxnetaux- handler 
delete LIBS:xprzmodem*. library 



32 CNet PRO 3 Bulletin Board Service 



Next, you must run a combination of data conversion 
programs, depending on this version you are updating from. 
These programs are located in the "updating" directory on 
the CNet distribution disks. NOTE that all programs here 
should be used from the Shell, and WITHOUT CNet 
running! 

Updating from Conversion programs necessary, in this order: 

L98 - 2.1 4z NEWBASE,NEWUSERS2,NEWUSERS4,UP225, 

UP250,UP30O 
2.15 - 2.16z NEWBASE,NEWUSERS3,NEWUSERS4,UP225, 

UP250.UP300 
2.17 - 2.18g NEWBASEJNEWUSERS4,UP225,UP250,UP300 

2. 1 9 - 2. 1 9z NE WUSERS4,UP225,UP250,U P300 

2.20 - 2.24z UP225,UP250,UP300 
2.25 - 2.42e UP250.UP300 
2.42f~ 2.72 UP300 
2.73--2.99z NOTHING! 

(Note: CNet version 2.63 was the LAST legally released 
version! All versions between 2.63 and 2.99z were BETA 
TEST only, and were NOT for general use. If you are 
running one of those versions, it would have to have been 
obtained from some pirate source and MAY not be reliable, 
or could even contain some kind of virus or "back doors" 
installed by the pirate. We WILL not take any 
responsibility for problems caused by use of pirated beta 
test versions of CNet.) 

If everything was successful, you should now be able to run 
CNet ("run control"), load your ports, write your control 
panel configuration, and then logon using the TAB key. 
Once you reach the Main prompt, you should run the 
version 3 POINTERS program and AMAINT program: 

run pfiles: maintenance/pointers 

run pfiles:bbs/amaint 

You should use the EG command to view the many new us- 
er privilege flags. After making appropriate changes, you 
should use the pfiles: maintenance/transpose pfile to make 
changes into individual user accounts. If you require expla- 
nation of any flag, see the "access group and user account" 
chapter. 



Installation 33 



If you are updating from 2.37z or earlier, you should EL 
your subdirectories and direct exchange subboards to give 
each of them a "unique dirname." The Base and UDBase 
have built-in unique dirnames of "main." And for EVERY- 
ONE updating, be aware that entry and exit file paths for 
these areas changed twice as follows (makedir the appropri- 
ate directories and rename the sys.entry and sys.exit files): 



version 2.37 
version 2.38 
version 3.00 



baseOrsys.entry.main 
baseO:main/sys.entry 
baseO: main/data/sys .entry 



Repeat the directory creation and file renaming (if neces- 
sary) for all subdirectories and direct exchange subboards, 
in both the BaseO: and UDBaseO: areas. 

If you are already running version 3, and receive a version 
3.X update, always be sure to check the "updating" subdi- 
rectory on your new CNet distribution disks. This directory 
will contain files describing what is new, and any special 
updating instructions. 



34 CNet PRO 3 Bulletin Board Service 

Notes: 



The Control Panel 35 



CHAPTER 3 - The Control Panel and BBS GUI 
(Graphical User Interface) 

The control panel provides the sysop with the ability to 
conveniently monitor BBS activity from one workbench 
window. It also serves as a handy point-and-click method 
for launching the CNet's global configuration program 
"CONFIG", launching ports, and setting or changing port 
variables. 

It is the control panel's job to remember the system's 
environment or "setup" once you have defined it. This 
consists of remembering which ports are launched, which 
port screens are open, what those screens look like, and 
how the pull-down menu options are set. Whenever you 
use the control panel pull-down menu option "Write setup", 
the control panel stores the setup information in the file 
"cnet:bbscontrol3. ,r 

Running CNet 

NOTE: At the time of this writing, the first release version 
of CNet PRO 3 can ONLY be started using a typed 
command. In future, an icon may be provided which will 
allow you to open the CNet Control Panel by clicking with 
the mouse. 

To run CNet, you must use the following command from 
the Shell or from your startup- sequence (the words in 
{braces} are OPTIONAL parameters): 

RUN CNET:CONTROL {NOICON} {NOCONFIG} {VERBOSE} 

NOICON: By default, the control panel "iconifies" into a 
tiny window containing a large letter "C" on the workbench 
window. Use the NOICON parameter to leave the control 
panel window open. 

NOCONFIG: By default, the control panel reads the file 
cnet:bbscontrol3. To prevent this from happening, include 
the NOCONFIG parameter. 

VERBOSE: By default, the control panel redirects all 
input and output to the Amiga's NIL: device. Include this 



36 CNetPRO 3 Bulletin Board Service 



parameter if you want to see debugging information in the 
Shell window. 



Once the control panel has loaded, it will "iconify" (unless 
you've used the NOICON parameter). This feature allows 
you to place the control panel icon anywhere on the 
workbench screen you desire, out of the way of other 
workbench applications. Also, the efficiency of the system 
is maximum when all port screens are closed and the 
control panel is iconified. 

To open the control panel, double click on the large letter 
"C." To close the control panel (removing it and all ports 
from memory) click the icon window's close gadget. 

Problems Loading and Running Control Panel 

If for any reason the control panel appears to fail to open 
properly, it is possible that the information held in the 
cnet:bbscontro!3 file has become corrupt. You may delete 
it and re-boot the system, or run CONTROL using the 
NOCONFIG parameter. 

CONTROL may also fail to load if it is unable to find 
libsxnet.library. Make certain that this file has been 
properly installed, and that when updating CNet it has been 
replaced with the latest and newest version. 

Another reason for CONTROL to fail is that there was not 
enough RAM memory. If your Amiga is short on RAM, 
make sure that you are NOT loading the Workbench (the 
"LoadWB" command) in your s:Startup-Sequence. 



Getting to Know the Control Panel 



a l (N«t/? ctfttnot t i(\t\ ; 



JEJ15 




imanaiaimiMBM-' 




Hiitt! s. " C8lls '«. « s i """mi "? i u^>nfo| sv^«« 



; <d 



Once the control panel is open, you can make it any size 
you wish by using the window sizing gadget. The control 
panel has numbers running down the left side of the 



The Control Panel 37 



window. These numbers correspond to port numbers. The 
control panel will display as many port numbers as possible 
based on the window's size. Using the proportional drag 
bar gadget and arrow gadgets on the right side of the 
window, you can view any portion of the control panel's 
100 port numbers (0-99). 

To re-iconify the control panel, click on the window's close 
gadget. There are also options on the control panel's first 
pull down menu to iconify and to immediately quit the 
control panel (all ports will be closed). 

To "select" a port, use the mouse to click once anywhere to 
the right of the port number in the control panel window. 
To unselect all ports, use the mouse to click once anywhere 
below the last port number displayed in the control panel 
window. The control panel will show you that a port is 
selected by changing the color of the port's line to be 
reverse that of the others. 

To launch a port, double-click anywhere to the right of the 
port number in the control panel. The message "Loading..." 
will appear. The message will then read "Setting up..." and 
finally, if successful, "Idle." If an error occurs, the message 
will flash "Failed" and then disappear. A port will fail to 
load if there is not enough memory or if it was unable to 
open a serial device (if one was ever configured for that 
port). If there was an error opening the serial port, you may 
wish to return to CONFIG to review your serial port 
configuration. For convenience, there is an option on the 
control panel's first pull down menu to run CONFIG. 

Saving the Control Panel Configuration 

Once you have configured the control panel and ports as 
you like them, you may select the pull down menu option 
"write setup" to write the cnetrbbscontroB file. When you 
next RUN CNETrCONTROL, the control panel will 
automatically configure the ports as they were when you 
last used the "write setup" option. 

The control panel has a built in security feature which 
allows you to LOCK the control panel, preventing any 
changes to be made to the configuration. To activate this 



38 CNet PRO 3 Bulletin Board Service 



function, select the pull down menu option "lock/write 
setup." To unlock the control panel, use the command 
CNET:UNLOCK from the Shell. It is possible to attach a 
password to the UNLOCK program-this will be explained 
in another section. 

Control Panel Menu Options 

The control panel's second pull down menu affects the 
currently selected port only. If there is no selected port, this 
menu will affect ALL ports. The first five options on this 
menu are "flags" that are either check-marked (active) or 
not. The remaining options are functions, The menu's 
options are as follows: 

SYSOP IS IN: Activate to tell users that you are available 
when they use the Chat command. Otherwise they will be 
told that you are out and offered a chance to send you a 
feedback message. 

NO NEW USERS: Activate to turn off the "NEW" option 
at logon. This restricts entry to the system to users who 
already have accounts. 

UDBASE CLOSED: Whether or not to allow users in the 
Uploads area of the BBS. 

PFILES CLOSED: Whether or not to allow users into the 
Program files area of the BBS. 

BASE CLOSED: Whether or not to allow users into the 
Message area of the BBS. 

CLEAR LINE: If there is a user online, immediately 
hang-up. 

CLOSE PORT: Bring the port down, removing it from the 
control panel. If there is a user online, immediately 
hang-up. 

SEND OLM: If there is a user on the port, enter a short 
message (On Line Message) to be displayed on the user's 
screen. 



The Control Panel 39 



CANCEL CHAT: When a user chats, his chat message is 
displayed in the control panel window at regular intervals, 
replacing the normal control panel information. This 
function will stop the control panel from displaying the 
chat message. 

Other Control Panel Gadgets 

There are two other push button gadgets on the control 
panel. 

The "Userlnfo" button is functional only when a port is 
selected, and a user is online on that port. A window will 
open to display the user's vital statistics. Use the window's 
close gadget (upper left corner) to remove this window 
from the screen. 

The "Syslnfo" button is functional at all times. A window 
will open to display the system's vital statistics. Use this 
function to quickly determine drive space, when the next 
system event will occur, and to view several system activity 
monitor (SAM) variables. To reset the SAM "period" 
variables, use Syslnfo's pull down menu option "reset 
period." Syslnfo also displays the system activity graph 
(SAG), showing the relative system activity by time of day, 
The activity graph is a continuously averaging function, 
and is only reset using Syslnfo's pull down menu option 
"reset graph." Using these reset options, you are able to 
monitor system activity over an arbitrary length of time. 

There are also several SAM variables displayed directly on 
the control panel to allow you to determine at-a-glance if 
there are messages waiting for you. "Mail" refers to 
messages waiting in the sy sop's mailbox (account 1). 
"Feedback" and "New Users" refer to messages left as 
feedback and by new users, respectively. "Calls logged" 
shows the number of calls (successful or not) that the 
system has saved in the call log. "Total" beneath "calls 
logged" tells the number of actual complete logins that the 
system has had to date. Note that this number does not 
include local-mode calls. "Total" beneath "new users" 
refers to the number of users currently active (not deleted) 
members of the BBS. 



40 CNet PRO 3 Bulletin Board Service 



Opening a Port's Screen 

Once a port has been successfully launched, you may open 
its screen. To open a port's screen, double click anywhere 
to right of its port number in the control panel. Your port 
screen(s) do NOT have to be open for users to log on to the 
BBS, and should usually be left closed to save memory 
unless you are monitoring BBS activity or logging on to the 
system yourself. 

The BBS GUI-waiting for a call 

The port screen title bar contains a copyright message and 
the current date and time. At the very left of the title bar is 
the port number. In the middle of the title bar is the 
account number and handle of the user currently on-line. 

There are two pull-down menus available while waiting for 
a call. Many of the options have Amiga-key equivalents; 
hold down the right-Amiga-key and press the command 
letter. A couple of the menu options have "control-key" 
equivalents. The control key is represented as a " A ". Hold 
down the control (Ctrl) key and press the command letter. 

The "Idle" menu contains the following options: 

Logon (SPACE bar): logon to the BBS in "Local Mode". 

AutoLogon (TAB key): enter "local mode" and 
automatically logon as account number 1 (presumably, you, 
the sysop). AutoLogon is not possible if the control panel 
is locked. 

Terminal: a quick and dirty terminal program offering fast 
file transfers and text capture capabilities. It also offers a 
high level of ANSI support. The terminal is described in a 
section later in this chapter. 

Answer/ATA: pick up the phone and send the answer 
carrier. CNet will proceed as if "RING" had been heard 
from the modem. This option is useful for when you are 
using the same line for voice and data, and want to 
immediately connect a modem caller to the BBS. 



The Control Panel 41 



Offline: if you checkmark this option, CNet will CLOSE 
the serial port, therefore making it impossible to accept 
calls. When you remove the checkmark, CNet will resume 
control of the serial port. This option is useful for when 
you are using other software requiring access to the serial 
port, but do not wish to completely remove the CNet port 
from memory. One example might be the FidoNet mailer 
program called "TrapDoor". TrapDoor setup is explained 
in the chapter on networking. 

Display (clock, SA monitor, SA graph): select what will be 
displayed. The clock uses a 128 point font so it can be 
visible across the room. The SA monitor gives quick stats 
about what's on the BBS, and what the last caller did. The 
SA graph gives a graphical representation of system 
activity versus time of day. 

The "screen" menu gives the following options: 

Stat window: remove or replace the user status window. 
The user status window is described in a section later in 
this chapter. 

Half screen: when in "half screen mode" CNet will only 
use the top half of the screen for text output. This allows 
you to "layer" more than one screen to see the activity of 
two users at once. When in half-interlace, half screen mode 
allows you to layer FOUR screens. There are areas of the 
BBS which do not allow half screen mode. These are the 
visual editor and the visual data editor. 

Workbench: toggle between a full screen and a window 
on the workbench screen. The workbench window will use 
the default workbench colors. Remember that users will 
always see the colors as configured by their terminal 
programs. 

Close screen: close the port's screen or window. When in 
workbench mode, you can also click the "close" gadget to 
close the window. To re-open the port's screen or window, 
double click in the control panel anywhere to the right of 
the port's number. 

Colors (2,4,8,16): the number of colors used with the 



42 CNet PRO 3 Bulletin Board Service 



port's screen. Colors are configured using the CONFIG 
"display..." screen. 2-color mode provides the fastest 
display, and should be used if you have a busy system, or 
users experience errors uploading or downloading at high 
speeds. 8 and 16 color modes slow the processor 
considerably, possibly making other ports sluggish. 
REMEMBER that no matter what you have this option set 
to, remote users will ALWAYS see full-color if their 
terminal programs are configured that way. 

Interlace (off,half,full): with this option set to "half or 
"full," CNet will open a screen with double the vertical 
resolution of a normal screen. In half-interlace mode, CNet 
will only use the top half of the screen (about 24 lines in 
NTSC). In full-interlace mode, CNet will use the entire 
screen (about 49 lines in NTSC). 

The BBS GUI-user on-line 

The "screen" menu is also available while a user is on-line. 
The "online" menu contains the following options: 

Hangup: immediately cut the user's time to zero and hang 
up. Just like the "clear line" menu option in the control 
panel. 

Chat mode: enter a one-on-one chat mode with the user. 
The user will not be able to exit using control-X. You 
alone may end the chat by again selecting the "chat mode" 
menu option. 

Local mode: place the user on "hold" while you take 
control of the keyboard and BBS. The user is told "the 
sysop has entered local mode. One moment..." The user 
will not be able to see what you are doing while you are in 
local mode. The port is also temporarily given full 
maintenance access. Select the "local mode" option again 
to return control to the user. 

Printer: toggle the printer on and off. When the printer is 
on, CNet will echo all screen output to the printer. 

Capture (open, save to file, append file, send to pit:, clear): 

when the capture buffer is open, CNet will send all screen 
output to the file "RAM:portX.cap" where X is the port 



The Control Panel 43 



number. The CLEAR option will reset the length of this 
file to 0. You may open and close the capture buffer as 
often as you like. When the capture buffer is closed, you 
may save the file or send the file to the printer. An "append 
file" option is included to add the capture buffer to an 
existing file. The "save to file" option will overwrite any 
existing file with the same name. There is a user "privilege 
flag" which will automatically open the capture buffer 
when the user logs on, and close it when he logs off. If you 
use this privilege flag, you must remember to periodically 
CLEAR the capture buffer to prevent your RAM from 
becoming full 

The user status window 



Washington, PC 18181 (0 i. . 
3t3-537i1S§ USD LC 5-D«-1993 Cf 

313-25524K 4-Jun-57 Ci 861?:6888B2 DV 



fl 




The user status window contains a great deal of information 
about the user currently on-line, or last on-line. The status 
window may automatically be closed while a user is on-line 
according to the setting of the CONFIG "close status 
window at logon" option. It may be toggled on and off 
using the "screen" pull-down menu. 

The first section of the status window contains user profile 
information. The user's real name, gender (M or F), 
city/state, zip code, voice phone#, data phone#, country, 
and birth date. 

AC :the user's access group number, and access group name. 

CO :the user's computer type. The three numbers after the 

computer type show the user's terminal type, ANSI level, 

and help level. 

LC : the user's last call date. 

C# :the user's total calls, and the number of calls the 

system has received in total (not including logins from the 

local console). 

UF : the number of files uploaded. 
DF : the number of files downloaded. 
UK : the number of kilobytes uploaded. 
DK : the number of kilobytes downloaded. 



44 CNet PRO 3 Bulletin Board Service 



CF: the user's file upload ratio #1, and number of file 

credits. 
DF : shows the user's byte upload ratio #1, and his number 

of byte credits. 

The first "DY" shows the number of files downloaded 
today, and the total number the user is limited to. The 
second "DY" shows the number of kilobytes downloaded 
today, and the total number the user is limited to. 

"TI" shows the amount of time the user has left, and the 
maximum amount allowed per call. "999" indicates 
unlimited time, and does not decrease. When time 
remaining is less than 10 minutes, tenths of minutes show. 
"$$" shows the user's account balance (in cents), not 
including the charges accumulated for the current call. 
"CA" shows the number of calls the user has made to the 
system today, and the total number he is limited to for the 
day. "MI" shows the number of minutes the user has spent 
on the system today (not including the time for the current 
call), followed by the number of minutes per day to which 
the user is limited. 

The bottom line of the control panel shows the current 
prompt, the last executed command, the baud rate, and the 
logon time and method (SON for signon, etc). The right 
side of the bottom line shows the time remaining until the 
next BBS event for this port. If the BBS event is "late" 
(that is, of the type "only if system is idle" and its scheduled 
time has passed), a "!" will show to the left of the time 
remaining, indicating that an event is "waiting" to happen 
just after this user logs off. If the user's "sysop comment" 
field is set, this will be displayed in place of the baud rate 
and logon time. 

You may set many of the status window variables while the 
user is still on-line. You may set the access group, and all 
of the credit and time variables. To set one of these 
variables, use the mouse to click on it in the status window. 
The field's background color will become purple. Use the 
number keys to change the displayed value. Use the "." key 
to reset the value to 0. Use the "-" key to toggle the value 
negative and positive. Use the ENTER key, or click into 
another position in the status window when you are 
finished. 



The Control Panel 45 



Terminal mode 

CNet offers a simple built-in terminal. This terminal 
provides many convenient features like file transfer, text 
buffer, and ANSI compatibility. Although we do 
occasionally make improvements to the terminal, it really 
was not designed to compete with your favorite 
full-featured term. It was included strictly for convenience. 

The "online" and "screen" menus are both available while 
in terminal mode. The "term" menu contains the following 
options: 

Baud: select any of the popular baud rates. You can also 
control the "locked" baud rate mode. 

XPR download: select a receive directory, and a file 
transfer protocol. You must have the AmigaDOS 
"asl.library" file in your LIBS: directory to use this feature. 

XPR upload: select files to send, and a file transfer 
protocol. You may select more than one file from the 
directory to "batch" send. You must have the AmigaDOS 
"asl.library" file in your LIBS: directory to use this feature. 

8 bit word: if unselected, the terminal will chop the "high 
bit" from each incoming byte. Unselect the "8 bit word" 
option if you are connected with a system using 7 bit data 
words (and possibly parity checking). 

Reset terminal: clear the screen, reset the ANSI video 
modes, and send the modem's terminal initialization string. 

JoinLink: go to JoinLink mode. See the "inter-user 
communication" chapter for more information. 

Quit/NO CARRIER: if this option is check-marked, the 
terminal will automatically Quit when it detects loss of 
carrier. This is a handy feature if you are downloading 
from a BBS using the auto-logoff feature, and want to reset 
the port when you are done, but do not want to wait around 
to do it. 

Quit: immediately hang up and return to "idle" mode. 



I 46 C Net PRO 3 Bu llet in Bo ard Service 

Notes: 



The ConGgura tion Editor 47 



The Configuration Editor 

CNet's GUI configuration editor is the program that you 
will use to make changes to your BBS's configuration 
options. If this if your first time setting up CNet, you will 
want to first read the "modems" section of this chapter. 
Additional sections of this chapter describe configuration 
options which are preset to adequate default values. You 
may come back to the configuration editor to make changes 
at any time once you have the system operational. 

Running the Configuration Editor 

From the Shell, use the command 

CNET:CONFIG 

to run the configuration editor. Once you have the system 
configured, it is also helpful to know that there is an option 
from the control panel's pull down menu to run the 
configuration editor. 

If the configuration editor loads successfully, a window 
will open on your workbench screen with the title "CNet/3 
global configuration." 



(Net/3 9 lob* I 


cant i jurat ion 




'irV 


Save 1 


|FutBPe" ]i¥l"d ~~~' : '; ;~| 
|Ktn PUUtr . , " "[ 
[Bedford, Hl'USfl ~"1 

ifiiDfLD j "" : '^2 
• |exam>Ui»u»us ~ | 
fu'WiM 


MspUy... j 
V Units,,.-. [ 

^faults... 1 
Options... | 


: HKhiwp8... 1 ! 

Editors,.. 1 ; 
Protucoii... | 
Events.,. | ■ '■' 


. PatltSn, . , | 

,;6BS nacros... | 

lew bjcpos. . .1 

:: Account ins... [ 


?: Hodws... | ;! 

rido-jet.i.. j : ■■ 

; Logs.., j !! 

Tcss*f . . . j j 




Cancel [ ! 



General System Information 

Directly on the configuration editor window, you are able 
to set your system's name, the operator's name (your 
name), the system's location, the primary BBS phone 
number, and a short BBS identifier (up to 8 characters). 



48 CNet PRO 3 Bulletin Board Service 



These data are used by the QWK message packing system, 
but may in the future be used by other parts of the BBS as 
well. If you have a UUCP (the UseNet network) address 
for your BBS, you may specify this here. 

Display 

From this screen, you may edit the following information: 

FONT: By default, CNet uses a special font "cnet21.font" 
which contains a hybrid of IBM style character graphics 
and CBM characters. You may specify any font you wish, 
as long as it is non-proportional, and 8X8 in size. 
"Topaz.font" is the Amiga's default system font. Note that 
this configures the font that will be used on your local 
console BBS port screens only. It does not in any way 
affect what the remote callers will see. 

DEFAULT COLOR: This will specify the color that CNet 
will "default" to when no other color has been specified. It 
is, in general, the color of prompt input, and messages in 
the message base. You are able to choose from the 
standard 16 ANSI colors. 

SCREEN DIM PAUSE: Screen dimming is used to save 
wear on your monitor screen. When a port's screen is open, 
and the port is "waiting for a call," CNet will automatically 
dim the screen after this number of 1/10 seconds have 
elapsed. The screen will automatically return to full 
brightness once the mouse is moved, the keyboard is 
touched, or a call comes in. 

SCREEN DIM INTENSITY: This parameter controls the 
degree to which the screen will be dimmed within a range 
of to 15. Specifying will make the screen appear 
completely black, 15 will make the screen to appear not to 
dim at all. 

SCREEN: Your CNet port screens can be viewed from 
your local console in either 2, 4, 6, 8, or 16 color modes, as 
determined by the port screen's pull down menu. Use this 
gadget to select which screen mode's colors will be edited 
with the Red, Green, and Blue slider gadgets. The Screen 
gadget will cycle through 2, 4, 8, and 16 color modes. 
NOTE: The number of colors and their appearance on the 



The Configuration Editor 49 



CNet port screens do NOT determine what the user will 
see. What the user sees depends on his own terminal 
program configuration. CNet always sends full 16 color 
text and graphics to the user no matter the number of colors 
you see on the port screen. These color configuration 
options are here only to allow you to change the appearance 
of your port screens as seen from the console. 

COLOR: Use this gadget to determine which local screen 
display color will be changed by the Red, Green, and Blue 
slider gadgets. 

Limits 

HIGHEST UDBASEX PARTITION: Set this to ONE 
LESS than the number of hard drive partitions that you will 
be using with CNet for purposes of file transfer (uploading 
and downloading). In order to check free drive space at 
various points in the BBS operation, CNet needs these 
partitions to be assigned as UDBASEO:, UDBASE1:, 
UDBASE2:, etc., each one corresponding to a hard drive 
partition (eg., DHO:, DH2:, FH2:, etc). If you have only 
one such partition, you should leave this number at 0. If 
you have 2 partitions, change this number to 1. This 
number is by logic, the number of hard drive partitions you 
have MINUS ONE. 

SHORT DESCRIPTION LINES: Each file in the 
Uploads area may have attached to it a "short" description. 
This description is 44 characters wide, and may be up to 8 
lines long, as you are able to configure here. If you shorten 
this value after the system has been operating, it will not 
affect existing descriptions. 

MAX PFILES RUNNING AT ONCE: Use this value to 
control the number of external program file (games and 
utilities you make available to your users, also called 
"doors") tasks that you wish to allow to operate at the same 
time. When setting this value, you really must only 
consider the amount of RAM memory you have available. 
You will not need to set this value higher than the number 
of ports that you are running. 

MAX USER ACCOUNTS: CNet will use this value to 
determine whether or not to accept a new user. Memory is 



50 CNet PRO 3 Bulletin Board Service 



allocated for the user index files when the BBS ports are 
loaded. If you change this value, you must close all of your 
ports and reload them to have it take effect. 

MAXIMUM CONFERENCE ROOMS: This determines 
whether or not CNet will allow the creation of a new 
conference room in the "Join" inter-user conferencing 
system. Each room occupies about 20K of memory. Thi! 
value includes public and private user rooms. 

HIGHEST NETWORK JOINLINK ID: When using the 
JoinLink feature (described in detail in the Inter-User 
Communications chapter), this value determines the 
maximum number of systems that are linked together in the 
JoinLink network. Memory is allocated for this option 
when your BBS ports are loaded. If you change this value, 
you must close all of your ports and reload them in order 
for it to take effect. 

MAXIMUM UD/BASE SUBBOARDS: Use this value to 
determine the maximum number of subboard (Upload areas 
and Message areas combined) that you will have on the 
BBS. Also include subdirectories when computing this 
value. It is OK to over estimate this value, however, 
remember that each subboard specified here will occupy at 
least 600 bytes of memory. If you specify a number less 
than the actual number of subboards that you have, CNet 
will auto- adjust it higher at load time. When there is no 
room for a new subboard, the "AL" (Add a new subboard to 
the List) command (described in the subboard chapter) will 
fail. Memory is allocated for the subboard structures at 
load time. If you change this value, you must close all of 
your ports and reload them in order for it to take effect. 

MAXIMUM SELECTED FILES: Users can use the * 
command to select files for later batch downloading. If the 
user does not take the selected files right away, the list is 
"remembered" until their next call. This value determines 
the maximum number of files that a user may select at 
once. Memory is allocated for the user select buffers at 
load time. If you change this value, you must close all of 
your ports and reload them in order for it to take effect. 

MAXIMUM UPLOADS PER BATCH: This value 
determines the number of files that a user may upload at 



The Configuration Editor 51 



one time. Memory is allocated only while the upload is 
taking place. Changes to this value take effect as of the 
commencement of the next batch upload. 

MAXIMUM G/PFILES PER LIST: This value controls 
the number of GFiles (General text files), PFiles (Program 
files), or News files that may be contained on one of the 
respective lists. These file areas are described in a later 
chapter. Memory is allocated for these lists at load time. If 
you change this value, you must close all of your ports and 
reload them in order for it to take effect. 

MAXIMUM YANK TASKS: "Yanking" refers to packing 
messages for download. CNet does this as a background 
task. This value determines the number of Yank processes 
that may be allowed to run "in the background" at one time. 
Each yank task uses a considerable amount of memory, 
especially if you have the yank work path set to RAM:. Set 
this higher than 1 only if you know that you have some 
memory to spare. 

MAXIMUM YANK FILE SIZE: This value allows you 
to limit the amount of messages (in file size) that may be 
yanked at one time by a given yank task. Having a limit 
prevents the user from yanking too many messages, 
resulting in out-of-memory, or creating yank files that use 
too much disk space. If a yank task is aborted because this 
limit is reached, the user will be notified of that fact, and 
will be given the change to yank again, picking up where 
the previous yank left off. 

DAYS TO HOLD USER YANK FILES: Because users 
can begin yank tasks and then log off, this value was 
necessary to prevent the accumulation of too many yank 
files "waiting" for users to return online. The 
auto-maintenance program ("amaint") automatically 
searches and purges old yank files. 

MAXIMUM LOGON ATTEMPTS: This value controls 
the number of ID and password* attempts that a user may 
make before the system will deny him access. 

LOGON TIME: This value (in 1/10 minutes) determines 
the amount of time that a user has from the moment of 



52 CNst PRO 3 Bulletin Board Service 



modem connection until he must be successfully logged on. 

MAXIMUM YANK FILES PER USER: This value 
determines how many times a user may run the yank task 
before downloading the results from the previous run(s). 

BBSLIST AUTO-PURGE; This values determines how 
long an entry is kept in the BBSLIST program. This 
feature forces users to edit or re-add BBS's to the list on a 
constant cycle in order for systems to remain on the list. 
This prevents "old" systems from remaining on the list. 

Defaults 

DEFAULT COUNTRY: Used by the New User program 
and the BBSLIST program. This will be the default 
country name the user is prompted with when asked to 
enter their own. 

DEFAULT AREA CODE: Used by the New User 
program and the BBSLIST program. 

DEFAULT PROTOCOL: Used by the new user program 
to determine which file transfer protocol to assign to new 
users. Use only the one character IDENTIFIER associated 
with that protocol. Users can change this at any time when 
beginning a file transfer. 

YANK PREFIX: These characters will appear as the first 
two characters in the filenames of Yank files. 

DEFAULT GAME POINTS: Used by the new user 
program to assign a value to the user's game points 
variable. This variable is not used directly by CNet, but 
may be used by third party game software. 

DEFAULT BALANCE: If you use the accounting 
system, the new user program will give users a balance as 
you specify here (in cents). 

DEFAULT TIME FORMAT: Used by the new user 
program to set the user's default time display format. Users 
can change this at any time by using the EP command. 

DEFAULT NET CREDITS: Used by the new user 



The Configuration Editor JKS 



program to assign a value to the user's network credits 
variable. This variable is used by the NETMAIL feature, 
described in a later chapter. 

DEFAULT BYTE CREDITS: Used by the new user 
program to assign a beginning balance of file exchange (per 
byte) credits to the user. The credits system is described in 
considerable detail in another section. 

DEFAULT FILE CREDITS: Used by the new user 
program to assign a beginning balance of file exchange (per 
file) credits to the user. 

DEFAULT JOINLINK ID#: JoinLink is a special CNet 
feature which allows two or more multi-line BBS's to 
combine their conference areas. Each BBS participating in 
a JoinLink must be assigned an ID number. If you use the 
JoinLink feature, you must select a number here not greater 
than the "maximum number of JoinLink IDs" that you set 
in the "Limits..." screen. You must also select an ID 
number for your BBS that does not match any of the 
JoinLink IDs used by other systems in your JoinLink 
network. JoinLink is described in the inter-user 
communication chapter. 

JOINLINK PASSWORD: JoinLink may be made 
completely automated. Specifying a password here allows 
users and BBSs to automatically invoke your JoinLink 
from remote. 

Options 

ALLOW FEEDBACK AT LOGON: If a user exhausts 
the maximum number of logon attempts when trying to 
logon to your BBS, this option determines whether or not 
he will be given the opportunity to leave you feedback 
before being disconnected. 

ALLOW WHO/USERLIST AT LOGON: If you run a 

completely private system, you may not want to enable this 
option. Otherwise, if enabled, this option allows callers to 
use the WHO command at the logon prompt to see who is 
currently online. It also allows a user-search prompt to 
appear if the user enters a handle or name which is not 
recognized by the BBS. 



54 CNet PRO 3 Bulletin Board Service 



ALLOW GUEST USERS: If enabled, users will be able to 
complete the new user program, but WITHOUT selecting a 
password. This makes the user's stay on the BBS 
"temporary" and the user is immediately auto-deleted when 
he logs off (or at auto-maintenance if the system crashes 
while he is online). Guest users are indistinguishable from 
other normal users while they are online. A sysop may edit 
the account of a guest user while he is online, give a 
password, and thus prevent the user from being deleted. 

STATUS WINDOW OFF AT LOGON: If enabled, the 
status window (window containing user information) at the 
top of each port screen will be closed (invisible) when a 
user is online. It can be manually re-opened by using the 
pull-down menu option on each port screen. Note that this 
applies to remote logons ONLY. The status window 
always defaults to OFF for local console calls. 

KEEP USER CONFERENCE PREFS: A user may 
custom configure a great deal of information concerning the 
inter-user conference Join program. If this option is 
enabled, this information is kept on disk file. Doing so 
occupies about 500 bytes of disk space per user. 

FEEDBACK GOES TO USER 1: If you like to read only 
one set of mail, enable this option. Normally, feedback 
goes to a separate mailbox, and must be read by using the 
VF command. You can override this, however, and have 
feedback sent directly to your mailbox. 

INDENT MESSAGES ONE SPACE: In the messages 
base, it often looks "cleaner" to have messages indented as 
they are read, to set them off from the message headers and 
other informative text. If, however, you operate with an 
extreme amount of "cursor dancing" type messages, it may 
be a good idea not to enable to this option in order to 
prevent those messages from being somewhat garbled. 

USE MULTIPLE TEXT SETS: CNet has the ability to 
operate with more than one language or "style" of text and 
menus. Text for the default language or style is stored in 
the files CNET:BBSTEXT and CNET:BBSMENU, and 
inside the directory SYSTEXT:. You may create additional 
BBSTEXT, BBSMENU, and system text files sets. Use 



The Configuration Editor 55 



this option to specify whether or not you intend to use the 
multiple language/style feature. You can set this option to 
"user selectable" or "port specific." If you specify user 
selectable, users will be asked when they first log on "new" 
to select a style from a list, and may change their selection 
at any later time by using the EP command. If you select 
port specific, each port on the system is "bound" to a 
specific language or style, beyond the user's control (you 
may have one English port, and one German port). Much 
more will be covered about this topic in the System 
Extensions and Modifications chapter. 

VALIDATE NEW USERS WITH CALLER ID: If you 

have caller ID on a line, and a new user logs on with a 
caller ID signal which matches the data phone number they 
enter, this option will automatically raise the user's access 
level from to 1 . 

SKIP HANDLE PROMPT WITH CALLER ID: If a 

caller ID signal is detected, and the user's phone number 
matches one or more accounts in the user database, this 
option will cause the logon procedure to skip directly to the 
"enter password" prompt. If the user's phone number 
matches more than one account, CNet will search those 
accounts for the one with the matching password. By 
hitting RETURN at the password prompt, the user will be 
returned to the "enter handle" prompt, in case he is calling 
from a line that is not his own. Many caller ID security 
features are supported by CNet, and are configurable for 
the users' individual accounts. 

DON'T ANSWER WITHOUT CALLER ID MATCH: 

This security option prevents CNet from even answering 
the phone if the user calling is not in the user database. 
There are many other possible uses for this feature, such as 
using CNet to operate a small private system on a voice 
line. 

SKIP IDLE PORTS ON WHO DISPLAY: When a user 
does a WHO command (to find out who else is online) if 
you have a large number of ports, you can save the user 
time and screen space by only listing the ports which are 
currently in use. If you have a small number of ports (a 
display that will not fill a screen), then you might not want 



56 CNet PRO 3 Bulletin Board Service 



to skip the idle ports, just to show the users that you have 
more available ports. 

DELETE UUCP MESSAGES WHEN KILLED: If you 
run UUCP (The UseNet network) through CNet, and have 
this option enabled, messages in the UUCP directories will 
be killed whenever their headers are killed anywhere in 
CNet. This helps to clear out un-used UUCP messages 
from your UUCP areas. You may not want to enable to this 
option if you have other software that also relies on the 
UUCP messages to be there. 

Paths 

OLM TEMP: When users write inter- user On-Line 
Messages, they must be temporarily stored somewhere. 
Usually RAM is a convenient place, as these files do not 
get very large, and are quickly deleted. 

ARC EXAMINE TEMP: When users use the Examine 
command to view the contents of an uploaded archive 
(several files bundled together and compressed into one 
file), the output must be temporarily stored somewhere. 
Usually RAM makes a quick and convenient place, as these 
files do not get very large, and are quickly deleted. 

YANK/QWK PACKING: Yank tasks are very 
disk-intensive, and are therefore a LOT faster in RAM if 
you can spare it. Select this option carefully. To estimate 
how much space you will need, referring to the "limits..." 
screen, take the number of "yank tasks simultaneously" and 
multiple that by the "maximum yank size" and then 
multiply that by 2. The result is in Kilobytes. If this 
number is something that you can live comfortably with in 
RAM, leave it set there. Otherwise, set it to a hard drive 
partition with adequate room. 

EDITOR TEMP FILES: As text is loaded into the editor, 
edited, and then saved, CNet must store the text somewhere 
temporarily. The average size of an editor buffer is about 
5-10K. If you have spare this amount of memory (per port) 
in RAM, you are well advised to keep it set there to keep 
the system running quickly. If necessary, you may set this 
to a hard drive partition with adequate room. 



The Configuration Editor 57 



OPTIONAL VDE: The files located in the 
SYSTEXT:VDE directory contain the screen information 
for the visual data editor screens such as seen when using 
the EL, AL, EA, EG commands. If you perform these 
commands often enough to warrant it, you may wish to 
keep these files in RAM so that VDE screens can be 
created a little faster. 

DEF. TERM U/D: This allows you to specify where CNet 
will first attempt to upload or download files when you use 
the upload or download files feature of CNet's built-in term 
program. 

CD ROM U/D TEMP: When you create a subboard to 
access files located on a CD ROM drive, and set the 
subboard flag "Use CD-ROM temp dir" to YES, this path 
specifies WHERE files are copied to prior to being 
downloaded. Copying files to a temporary download 
directory is almost mandatory for 6-pack and other 
multi-disk CD ROM units to prevent erratic access to these 
devices. CNet will allow only one BBS process to access 
the CD ROM at a time. 

SPELL DICTIONARY: If you have the RAM to spare, 
you can place the CNet files "diet" and "dict.index" in 
RAM to greatly increase the performance of the built-in 
spell checker. If you do not have the RAM to spare, 
specify the path to these files. Note that you might have to 
modify your AmigaDOS startup script to copy these files to 
the proper directory whenever you reboot your Amiga so 
CNet can find them. 

FIDO INBOUND: If you are running Fido-Net, you need 
an inbound directory. Most people find MAILiINBOUND/ 
to be most convenient. 

FIDO OUTBOUND: If you are running Fido-Net, this is 
the corresponding OUTBOUND directory path. Most 
people keep it set to MAIL:OUTBOUND/. 

FIDO NODELIST: If you are running fidonet, you must 
specify this path. To keep things simple and consistent, it 
is recommended that you use MAIL:NODELIST/. 



58 CNet PRO 3 Bulletin Board Service 



BBS Macros 

The text that you specify here will be typed all at once 
whenever you press the corresponding function key, Fl 
through F10, during BBS operation. The only special 
character is ' (backwards apostrophe) which represents a 
press of the ENTER key. 

Term Macros 

These macros are analogous to the BBS macros, but are 
used in CNet's built in terminal mode only, in place of the 
normal BBS macros. 

Accounting... 

CNet has the ability to maintain an actual monetary 
"account balance" for each user. The user account balance 
field has the units of CENTS (in other countries, substitute 
your lowest currency denomination). Each new user is 
given the initial balance as set from the CONFIG 
"defaults..." screen. While a user is online, his balance is 
displayed in the status window next to the "$$." The 
balance displayed does not reflect charges as they 
accumulate for the current call in progress. You can 
manually SET a user's account balance by using the "EA" 
command or by using the mouse to click on the balance in 
the status window while the user is online. 

There are MANY ways to automatically charge for activity 
on the BBS. You can charge for time, for downloading, for 
voting, etc. You can also CREDIT users for activities, 
perhaps uploading or posting. The convention in use is that 
CHARGES appear as and are entered as POSITIVE 
numbers, and CREDITS appear as and are entered as 
NEGATIVE numbers. 

The accounting system is very configurable (and therefore 
somewhat confpleV There is'much more to it than simply 
setting values for each of the BBS activities. These values 
can be made to change depending on the access group, the 
time of day, and the specific subboard in use. 

The one term to become familiar with is "schedule." An 
accounting system schedule is the list of charges in use at a 



The Con&gwa tion Editor 59 



particular time. Unless changed with a BBSEVENT 
(described later), CNet will always use SCHEDULE 0. 
Within a schedule is a complete list of charges for each bbs 
activity for EACH ACCESS GROUP. 

When you first select "accounting..." from the CONFIG 
main screen, you will see two windows. The first will be a 
list of the schedules that exist on disk. CNet comes 
pre-configured with a schedule 0, so you should see a "0" 
in that window. The second window is a list of charges and 
other accounting variables. The "access:" slider below the 
charges window can be used to change the list of charges to 
show the values for each of the 32 access groups (0 to 31). 
Each charge has a description, units, and a current value. 
Units of "c" are cents, and units of ".01c" are Hundredths of 
a cent. 

To edit a particular schedule, use the mouse to click on its 
number in the list of schedules window. The schedule 
number should appear in the box below the list of schedules 
window. To change any value, use the mouse to click on 
the description of the charge that you wish to change. The 
current value and the cursor should appear in the "value" 
box below the list of charges. Type the new value and 
press ENTER. Use the "access" slider to edit the charges 
of the different access groups. Your changes are saved if 
you select "save" when exiting the CONFIG program. 

To create a NEW schedule (remember you must use 
BBSEVENTS to make use of schedules other than 0), click 
on the "NEW" button. The cursor will appear in the box 
below the list of schedules. Enter a number (not already on 
the list of schedules!) and press ENTER. Make changes to 
the charges as necessary. Click on "ADD" when you have 
completed. Do NOT forget to click on "ADD!" Exiting 
this screen without adding the new schedule to the Est of 
schedules will cause your new schedule to be LOST. 

The "COPY" button is used like "NEW" except you must 
first select an existing schedule (by clicking on its number). 
Then click on "COPY." The cursor will appear in the box 
below the list of schedules. Enter a unique number for your 
new schedule. The difference is that the charges from the 
first schedule you selected are COPIED into this new 



60 CNet PRO 3 Bulletin Board Service 



schedule. Make any changes as appropriate. Do not forget 
to click on "ADD." 

To remove a schedule from the list, click on the schedule 
number and then the "REMOVE" button. Schedules will 
actually be deleted only if you select "SAVE" when exiting 
the CONFIG program. 

Following is a list of the charges available. Many of the 
them are mentioned elsewhere in the manual when their 
functions are discussed. Most of them are self explanatory. 

Minimum balance allowed (c): the lowest actual value a 
user can have in the "balance" field before the BBS will 
stop the user from performing charged-for activities. In 
general, this will be a negative number. It tells the user 
how far in debt he can go before being "cut-off." Of course 
the user will always be able to perform "credit" activities. 

New AG if balance prevents logon: this is an access group 
number, to 31. If a user's balance is so low that he is 
unable to even logon (because of per-minute, per-call, 
per-day, per-month charges), CNet will automatically 
change the user's access group to this number and attempt 
the logon procedure again. Set this number to -1 if you do 
not wish to use this feature. 

Each successful logon (c) 

First call in any day (c) 

First call in any week (Sun-Sun) (c) 

First call in any month (c) 

Each use of Re-logon command (.01c) 

Per minute of connect time (.01c) 

Per OLM sent (.01c): see the inter-user communication 
chapter. 

Per successful FINGER command (.01c) 

Per minute in the conference (.01c): this is the Join 



The Configuration Editor 61 



tele-conference. See the inter-user communication chapter. 

Per minute in InterUserChat (.01c): the CC command. See 
the inter-user communication chapter. 

Per minute in gfiles/news (1 to 3) (.01c): used with the 
"area use rate" field found on the "EL" screen from the 
News or Gfiles areas. The "area use rate" can be used to 
select one of these three values, so that different values can 
be used depending on the subdirectory that the user is in. If 
"area use rate" is set to 0, the user will not be charged for 
being in that area. 

Per gfile read/downloaded (1 to 3) (.01c): used with the 
"item use rate" field found on the "AT" screen when using 
the "AT" command to edit a text file. The "item use rate" 
can be used to select one of these three values to charge the 
user when the user reads or downloads the item. If "item 
use rate" is 0, the user will not be charge for reading or 
downloading the item. 

Per minute in PFILES (1 to 3) (.01c): just like the "per 
minute in gfiles/news," but these values are used when in 
the Pfiles area. 

Per pfile execution (1 to 3) (.01c): just like the "per gfile 
read/downloaded," but these values are used with the "item 
use rate" when a pfile is executed. 

Per item sent as feedback (.01c): the "F" command. 

Per item sent as e-mail (.01c): normal "local" e-mail. 

Per item read as e-mail (.01c): all e-mail received, urgent, 
local, network. 

Per e-mail item re-edited (MV) (.01c): when mail is 
changed using the "MV" command. 

Per e-mail item removed (MV) (.01c): when mail is killed 
using the "MV" command. 

Per FIDO NetMail sent (.01c) 



62 CNet PRO 3 Bulletin Board Service 



Per UUCP NetMail sent (.01c) 

Per minute using the Vote booth (.01c) 

Per vote cast in Vote booth (.01c) 

Per minute using subboard (1 to 3) (.01c): used with the 
"subboard use rate" field in the "EL" screen of any 
subboard. The "subboard use rate" determines which of 
these three values to use in the subboard. If "subboard use 
rate" is set to 0, the user is not charged for being in the 
subboard. 

Per item read in subboard (.01c): can be nullified if the 
subboard flag "no read charges" is set to Yes. 

Per post in subboard (.01c): can be nullified if the subboard 
flag "no post/rep charges" is set to Yes. 

Per response in subboard (.01c): can be nullified if the 
subboard flag "no post/rep charges" is set to Yes. 

Per subboard item re-edited (ED) (.01c): any post, 
response, or long file description edited. 

Per subboard item removed (K) (,01c): any post, file, or 
response killed. 

Per YANK task launched (.01c): subboard command. 

Per local text search (Z) (.01c): subboard command. 

Per global text search (ZG) (.01c): subboard command. 

Per KByte downloaded (1 to 3) (.01c): used with the 
"dnload byte charge#" field in the "EL" screen of a 
subboard. The value of "dnload byte charged" determines 
which of these three values is used. If "dnload byte 
charged" is set to 0, the user is not charged for the amount 
that he downloads in that subboard. Versions of the 
"dnload byte charge#" and the three other charger's 
mentioned in the next three paragraphs also appear in the 
"EL" screen from the Gfiles/Pfiles/News prompts for use 
with the downloading of text files. 



The Configuration Editor 63 



Per file downloaded (1 to 3) (.01c): used with the "dnload 
file charge#" field in the "EL" screen of a subboard. The 
value of "dnload file charge#" determines which of these 
three values is used. If "dnload file charge#" is set to 0, the 
user is not charged for each file that he downloads in that 
subboard. 

Per KByte uploaded (1 to 3) (.01c): used with the "upload 
byte charge#" field in the "EL" screen of a subboard. The 
value of "upload byte charge#" determines which of these 
three values is used. If "upload byte charge#" is set to 0, 
the user is not charged (or credited) for the amount that he 
uploads. Often, these values, as well as "per file uploaded" 
are set to negative numbers (credits). 

Per file uploaded (1 to 3) (.01c): used with the "upload file 
charged" field in the "EL" screen of a subboard. The value 
of "upload file charge#" determines which of these three 
values is used. If "upload file charge#" is set to 0, the user 
is not charged (or credited) for the number of files that he 
uploads. 

Per minute using the UserList (.01c) 

Per minute using the BBSList (.01c) 

Per addition to the BBSList (,01c) 

Per use of TermLink (.01c): each time the "TERM" 
command is used (with "full" access), or used with a 
successful connection (with "limited" access). 

Per minute using TermLink (1 to 3) (.01c): these values are 
used with the "rate" field in the "termlink" file as described 
in the inter-user communication chapter. The value of 
"rate" determines which of these three values to use. If 
"rate" is set to 0, the user is not charged for the termlink 
connection. 

While online, a user can receive a summary of his account 
balance and current call charges by using the "AC" 
command. Selecting "detail" will show a breakdown of 
each type of charge accumulated. 



64 CNet PRO 3 Bulletin Board Service 



Archivers... 

The CONFIG program's list of archivers (like ARC, DMS, 
LHA, ZIP, ZOO) is used in conjunction with at least six 
BBS functions. 

First, the list of archivers provides the information 
necessary to use the "Examine" subboard command. Each 
archive type can have associated with it a "view format." 
The view format is used to create the DOS command 
necessary to display the contents (list of files) within an 
archived file. A view format looks something like this: 

zoo> %sv"%s" 

"Zoo" is the DOS command. "> %s" causes the output of 
the Zoo to be redirected to a file. This "%s" will be 
replaced with an appropriate temporary filename. The "v" 
is an argument for the "zoo" program. The second "%s" 
will be replaced with the archived file's path and filename, 
all view formats must be of this general format. 

Second, the list of archivers provides the information 
necessary to perform the "TEst" subboard command (also 
performed during auto-maintenance). The "test format" 
should be similar to the "view format" except that the 
arguments necessary to "test" the file are substituted in 
place of the "view" arguments. "Test keyword," "keyword 
line," and "keyword column" are also all used with the 
"TEst" command. See the subboard chapter for a complete 
description of the "TEst" command and these fields. 

The third function of the archivers list is to provide DOS 
command formats for "packing" files. Files are packed by 
the "Yank" subboard command. See the subboard chapter 
for a complete description of the Yank command. For 
example, the "pack format" may look like: 

area %$ %s 

The "arc a" is the DOS command and its argument(s). The 
"pack format" should always end with two %s's. The first 
one will be replaced by the temporary name of the new 
archive. The second one will be replaced by the filename 
or filename(s) of the file(s) being packed. The ZOO 



The Configuration Editor 65 



program currently in use does not support AmigaDOS 
wildcards, so is "hard-coded" to pack "*," which is an 
MS-DOS wildcard representing "all files." ".TXT" 
contains a "pack format" which is really a place-keeper. 
TXT's pack format line should not be altered. 

The fourth use for the archivers list is to EXTRACT 
archives. The "extract format" field is used when users 
upload QWK packets. It is also used by TOSS to extract 
archived packets. The "extract format" is similar to the 
"pack format'* except for the arguments sent to the archiver 
program. For the "arc" example, the extract format is: 

arc a %s %s 

If a view, test, pack, or extract command or ability does not 
exist for a particular archive type, make sure the field is 
BLANK. CNet knows which archiver types to prompt the 
user with based on whether or not these fields contain data. 

Not all extensions listed in the list of archivers must 
actually be archivers. Any three character extension may 
be listed here. Uses are as follows: 

The fifth use of the list of archivers is to prevent specific 
types of files (those with specific extensions) from being 
uploaded. Each subboard has an "arcs uploadable" field. 
The range of numbers in this field correspond to the order 
of the extensions in the list of archivers. A user may not 
upload a file with an extension listed in the list of archivers 
unless that extension's number is included in the "arcs 
uploadable" field. Files with extensions not found in the 
list of archivers may always be uploaded. To see an 
extension's number, use the mouse to click on the 
extension in the list. The number will be displayed to the 
right of the extension. NOTE that if you change the order 
of the list of extensions, "arcs uploadable" fields may 
become invalid. 

The sixth use of the list of archivers is to cause only files of 
certain types (certain extensions) to be Transformed. A file 
type will NOT be transformed if its extension appears in 
the list of archivers, but that extension's number is NOT 
included in the subboard 's "arcs transformable" field. See 



66 CNet PRO 3 Bulletin Board Service 



the subboard chapter's "transformation" section for a more 
complete discussion. 

To edit an archiver's information, use the mouse to click on 
the extension in the window containing the list of 
extensions. The extension will appear in the box below, 
and it's number will appear beside that box. You can use 
the mouse to click into any of the input boxes to make 
changes to any specific field. 

To add a new archiver to the list, click the "new" button. 
The cursor will appear in the box below the list of 
extensions. Enter the extension and press ENTER. All 
extensions must begin with a period. Click on "add" to 
actually add your new archiver to the list. 

To remove an archiver from the list, first click on the 
archiver's extension. Then click on the "remove" button. 

Editors... 

CNet has the ability to incorporate external or "third-party" 
text editors. These add-on editors may either be designed 
to be used from a DOS shell, or may be specifically 
designed to work only with CNet. Because this list of 
editors is the one that is given to users when choosing a 
default editor (the EP command), the two "internal" editors 
are also listed. 

The "Line editor" must always appear first in this list. The 
"visual editor" must always appear second in this list. 

Each "external" editor must have a "path" and an 
"interface" type. The path is the complete path and 
filename to the editor program itself. The "interface" must 
be chosen as either DOS or CNet. External DOS editors 
will be given the filename of the temporary editor file as an 
argument. 

To change an editor, click on the editor's name in the list of 
editors window. To add a new editor, click on the "new" 
button and enter all appropriate information. Click on 
"add" to add your new editor to the list of editors. To 
remove an editor, first click on the name of the editor, then 
click on the "remove" button. 



The Con6guration Editor 67 



The "local mode editor path" may contain an optional path 
and filename to an AmigaDOS editor to be used from the 
local console INSTEAD of the chosen "default editor." 
The name of a temporary file will be passed to the editor as 
an argument. Many people prefer "CygnusED" from local 
mode. 

Protocols... 

CNet uses an Amiga standard in file transfer protocols— the 
"XPR" protocol interface. XPR protocols are EXTERNAL 
".library" files. This allows you to add, remove, or update 
file transfer protocols at any time. Most XPR's are public 
domain, and can be found on many larger BBS's. CNet 
come pre-loaded with the most popular and most reliable 
XPR's. 

Each protocol has a title, a unique ID, a library name, and 
an "environment" (described below). Each protocol may 
also be chosen to be a "batch" protocol, and/or a 
"resumable" protocol. 

The title should be something descriptive of the protocol. 
Usually, protocols have names, like "Zmodem" or 
"Xmodem," so this field is not too hard to fill in. 

The unique ID should be a single CAPITAL letter, number, 
or symbol. Each protocol's unique ID must be different 
from the others. The unique ID is the key which the user 
must press when choosing the protocol from the list of 
protocols. 

The library name is the actual filename of the ".library" 
file, including the ".library" extension. All XPR protocols 
begin with "xpr". This filename must match the filename 
as found in the LIBS: directory. 

The environment is a "configuration string". It is passed to 
the protocol when the protocol is initiated. The 
environment depends on the protocol in use. If you are 
adding a new protocol, or wish to reconfigure an existing 
protocol, you should consult that protocol's documentation. 

A "batch" protocol is one that can transfer more than one 



68 CNet PRO 3 Bulletin Board Service 



file at a time. Zmodem and Ymodem are batch protocols, 
while Xmodem is not. Batch protocols send the filenames 
automatically when sending the files. CNet uses this 
information to allow the user to "skip" the prompt for 
filename when uploading a file. 

A "resumable" protocol is one that can continue an upload 
that was interrupted, or in some other way unfinished. 
Zmodem is a resumable protocol. To resume an upload, the 
"U" command is used with the item's number. 

To edit an existing protocol, click on it's title in the list or 
protocols window. Use the mouse to click into any field to 
change it. To add a new protocol, click on "new" and then 
enter all information. Click on "add" to add your new 
protocol to the list of protocols. To remove a protocol, first 
click on the protocol's title, and then click on "remove." 

Events... 

CNet's "event scheduler" is used to dynamically change 
BBS access requirements, run pfiles and DOS commands, 
and even to take the board offline and back online. The 
event scheduler is highly configurable, and can be made to 
execute events at specific times during the day, the week, 
the month, and even the year. 

There are many event "commands" each of which may take 
various arguments. These commands are as follows: 

RunCNetC: the argument must be the path and filename of 
a CNet C pfile. 

RunARexx: the argument must be the path and filename of 
an ARexx script file. 

RunDOS: the argument must be the path and filename of a 
DOS shell program. "RunDOS" executes the program 
interactively, like a pfile. It differs from "DOS-CMD" 
which executes the argument from the current CLI. Input 
and output will take place in the Shell from which CNet 
was loaded. 

ReadFile: display a text file on the screen. 



The Configuration Editor 69 



DOS-CMD: execute a DOS command using the current 
CLI. The user will not be shown the output from the 
command. This is the ONLY bbsevent currently capable of 
being executed directly from the CONTROL process (do 
this by leaving the "ports" field blank). 

ClosePrt: close the port (when the port is "waiting for a 
call".) No argument. If used with type "Immediate— force 
system idle", ClosePrt will "dump" the user from the 
system and then close the port. If used with type 
"Immediate— system idle or not", ClosePrt will wait until 
the user logs off before closing the port. 

Charges^: the argument must be the accounting system 
schedule number. By default, the accounting system uses 
schedule number at all times. By using this event 
command, you can dynamically change the active 
accounting schedule. This is especially useful to charge for 
"peak" or "prime" times. See the "accounting..." section for 
more information. 

LogonBPS: the argument is the LOWEST baud rate ABLE 
to logon. If you specify "9600," only callers with 9600 
baud modems (or greater) will be able to log on. CNet will 
not disconnect a user until he has entered his ID and 
password just in case he has the "bypass bbsevents" 
privilege flag. 

DloadBPS: the argument is the LOWEST baud rate able to 
download. The "bypass bbsevents" privilege flag overrides 
this restriction. 

UloadBPS: the argument is the LOWEST baud rate able to 
upload. The "bypass bbsevents" privilege flag overrides 
this restriction. 

Logon ACC: the argument is the RANGE of access groups 
which may logon to the BBS. This is by default ALL 
groups. The "bypass bbsevents" privilege flag overrides 
this restriction. 

XFersACC: the argument is the RANGE of access groups 
which may either upload or download. The "bypass 
bbsevents" privilege flag overrides this restriction. 



70 CNet PRO 3 Bulletin Board Service 



PfileACC: the argument is the RANGE of access groups 
which may enter the pfiles, that is, use the "P" command 
from the Main prompt. 

Modem#: similar to the ARexx interface's "modem" 
command. The argument is a number to 2. Use to 
completely close the serial device. Use 1 to re-activate 
and/or re-listen the serial device. Use 2 to "unlisten" the 
serial device. When in "unlisten" mode, all modem I/O is 
suspended, but the serial device is not closed. This 
command is useful when integrating various network 
mailers or other modem software which "share" a serial 
port. 

CallBack: disable (argument of 0) or enable (argument of 
1) the auto-callback at logon feature (user privilege flag). 
Normally, CNet will attempt to dial all long distance 
numbers. Use an argument of 2 to insure that CNet will 
only dial numbers found in the current "avalid" file. 

Avalid#: argument is the current "avalid" file number. 
Normally, you configure just one "avalid" file (the file 
describing which phone numbers are "local" calls, 
described in the "logon" chapter). This command allows 
you to use DIFFERENT avalid files at different times. The 
search order is (# is the avalid#, and P is the current Port 
number): 

systext:sys.avalid#.P 
systext:sys.avalid# 
systext:sys.avalid.P 
systextsys.avalid 

Sysopln: or 1 (No or Yes), may users page the sysop? 
This command as well as the next four affect the 
check-marks on the control panel's pull-down menu, 

NewUsers: or 1 (No or Yes), may new users logon? 

U/Dbase: or 1 (No or Yes), may users enter the Files 
area? 

Pfiles: or 1 (No or Yes), may users enter the Pfiles area? 



The Configuration Editor 71 



Base: or 1 (No or Yes), may users enter the Message 
area? 

JoinLink: 0, 1, 2, or dialing instructions. Used in 
conjunction with the Join-link feature (see the inter-user 
communication chapter). Use 1 to allow incoming 
automatic joinlink connections. Use 2 to allow ONLY 
incoming automatic joinlink calls (no other users). Use 
to not accept any joinlink calls. The argument may also 
contain "dial instructions" when auto-dialing to another 
joinlink site. The format is (# is a phone number, and 
"pass" is the remote system's joinlink password): 

ATDT# pass 

On-Line: take the system offline (argument of 0) or back 
online (argument of 1). The only effect this command has 
is that when "offline," the system will not answer the 
phone. The current caller will not be interrupted (unless the 
event type is "force idle.") 

For each event, you must specify the PORTS on which the 
event will occur. This can be any valid RANGE of port 
numbers. When using the "DOS-CMD" event command, 
you can leave the PORTS field blank. In this case, the 
CONTROL panel will execute the DOS-CMD. This is 
especially useful to "run" bbs ports not currently open. 

Each event has one of four TYPES: "Immediate-system 
idle or not" will execute the command whether or not there 
is a user online. This is usually preferable for "access 
restriction" commands— those that change baud rates, 
access groups, or configuration settings. 

"Immediate—force system idle" will limit a user's time 
online in order to CLEAR the line at the event's PRECISE 
time. There is really is no way around this type of 
event-CNet will do everything possible to clear the line on 
time. It is usually preferable for system critical programs 
like auto-maintenance and network mailers. 

The " Only if system is idle" type can be used for events 
which are not system critical. If a user is online at the 
scheduled event time, the event will not occur, but will 



72 CNet PRO 3 Bulletin Board Service 



"wait" until the user logs off. If the event is still "valid," it 
will occur at that time. "Valid" times will be described 
shortly. This event type is usually used for third party 
maintenance programs and hourly network functions. 

The " Only if a user is online" type can be used to run 
pfiles whose purpose is to, perhaps, display random user 
messages, such as a recurring system news item or an 
advertisment. This event type is used for events which are 
of little system value unless a user is online. 

Events can be either weekly, monthly, or yearly. You can 
select an event to be weekly by placing check-marks in the 
boxes corresponding to the weekdays on which you would 
like the event to occur. If you want the event to occur 
daily, place check-marks in all seven boxes. To select an 
event to be monthly or yearly, no check-marks must appear 
in the daily boxes. For a monthly event, enter just the 
numeric date in the "[mm/]dd" box. The event will occur 
only on that date during each month. NOTE that if you 
specify "31" for example, the event will occur only in 
months with 31 days. For a yearly event, enter both the 
month and year in the "[mm/]dd" box. 

Each event has a definite starting time. Enter the time in 
military format, like "2100" for 9pm, or "0" for midnight, 
or "10" for 10 minutes after midnight. Events will occur at 
the time specified here unless a user is online and the event 
type is "Only if system is idle." 

The "valid" field is the amount of time (in military hours 
and minutes) for which the event is useful. It is NOT an 
estimated length of time of execution. If for some reason 
CNet is unable to execute the event at the scheduled time, 
CNet will use the "valid" field to determine how much time 
must pass before the event will be skipped altogether. For 
example, if an event is of type "Only if system is idle," and 
a user is online at the scheduled event time, the event will 
not occur. However, if the user later logs off, and the 
"valid" time has not yet passed, the event is considered 
"still valid" and WILL occur at the idle screen. Conversely, 
if an event is of type "Only if a user is online," and a user is 
NOT online at the scheduled time, the event will not occur. 
However, if a user later logs on, and the "valid" time has 
not yet passed, the event WILL occur when the user is 



The Configuration Editor 73 



online. The one other time that the "valid" field is 
important is when you first load CNet. If you have amaint 
set to run at 400, and valid for 100, and you load CNet at 
430 or even 459, amaint will run. "Valid" must be set to at 
LEAST 1 minute. If set "valid" to 0, the event will 
NEVER occur. It is fine and often necessary for "valid" 
times to cross day boundaries. 

Many times, you may want to "repeat" events, perhaps 
every hour, two hours, or even every minute. Without 
manually entering each event, this is possible with the 
"iterate" and "interval" fields. Set iterate to the absolute 
number of times you want this event to occur. Set the 
interval to the amount of time (military hours and minutes) 
to wait between iterations of the event. This ability is 
especially useful for network mailers. It is also useful 
when you desire to display random or recurring messages 
to the user(s) by using pfiles, as often as once each minute. 

CNet will extend events into new days if you select long 
enough intervals and enough iterations. If you specify 24 
iterations with an interval of 200, this event will occur 
every two hours for TWO days. If the event is set to occur 
every Monday, the event will occur during Monday AND 
Tuesday. NOTE that if you also select the event to occur 
on Tuesday that the event will then appear to run TWICE 
on Tuesday. 

To edit an existing event, click on the event in the "events" 
window. The events window shows the commands and 
arguments of all events. To add a new event, click on 
"new." Enter all information, in addition to selecting an 
event "command" from the "command" window. Click 
"add" to add the new event to the list of events. To remove 
an existing item, click on its entry in the events window, 
then click "remove." 

Many events are straightforward. With access restriction or 
configuration commands, however, there is one thing you 
should be sure to do: To account for system re-boots at any 
time during the day, you should account for all 24 hours in 
the event "time" and "valid" fields. 

For example, if you want only 9600 baud (and higher) 



74 CNet PRO 3 Bulletin Board Service 



callers at all times, the following event is useful: 

command: LogonBPS, args: 9600, type: System idle or not 
time: 
valid: 2400 

However, if you want 9600 baud callers from 6pm until 
2am, you will need two events: 

command: LogonBPS, args: 9600, type: System idle or not 
time: 1800 
valid: 800 

command: LogonBPS, args: 0, type; System idle or not 
time: 200 
valid: 1600 

Notice how the "valid" fields add to 2400 hours, and all 
times are taken into consideration. 

Modems... 

Each BBS port that has a modem (or null modem) attached 
to it must have a corresponding entry here in the modem 
configuration screen. Fields on this screen control how a 
serial device is opened, which baud is used to communicate 
with it, and many other options and parameters. 

First, CNet is designed to use Hayes compatible, or nearly 
Hayes compatible modems. Modems that use "AT" 
commands like "ATD" and "ATA" are generally 
"compatible enough" to work with CNet. Also, CNet is 
designed to use "7-wire" serial cables, containing pins for 
carrier detect, DTR, and RTS/CTS. CNet will be unable to 
properly function with a cable of lesser capability. In 
general, most modems and cables that you will find are 
suitable for the task, but occasionally you will find 
equipment that is not up-to-par for a BBS environment. 

CNet needs the modem to supply a carrier detection (CD) 
signal. This signal is used to determine when a connection 
is established and when it is broken. Without this signal, 
CNet will be unable to "clear the line" or hang up properly 
when a user drops the connection. Some older modems 
have a DIP switch to enable or disable carrier detection. 



The Configuration Editor 75 



Most newer modems use a software command "AT&C1" to 
enable CD. In the latter case, you can add "&C1" to the 
modem's second initialization string (described later). 

CNet needs the modem to hang-up and go off-line when the 
DTR line is dropped. This will enable CNet to quickly 
hang-up and reset between callers. Some older modems 
have a dip switch to enable this function. Most newer 
modems use a software command "AT&D2" to enable 
DTR hang- up. In the latter case, you can add "&D2" to the 
modem's second initialization string (described later). 

For high speed modems (9600 and higher), CNet needs the 
modem to operate using RTS/CTS handshaking. For 
USRobotics (and many other) modems, this is turned on 
using the "AT&B1" and "AT&H1" commands (or adding 
"&B1&H1" to your second initialization string). You 
should consult your modem's manual for exact commands 
specific to your modem. 

CNet needs the modem to NOT be in auto-answer mode. 
Some older modems have a dipswitch for this. Most newer 
modems use the command "ATS0=0" to turn off 
auto-answer. In the latter case, you can add "S0=0" to the 
modem's second initialization string. If the "AA" light is 
OFF when the BBS is waiting for a call, you have correctly 
configured this mode. 

CNet needs the modem to use VERBOSE result codes. 
The modem command to accomplish this is "ATV1." This 
is the default on all current modems, so you should really 
not have to consider this unless you are seeing numeric 
codes like "0" instead of "OK." 

Optionally, instead of adding modem commands to the 
initialization strings, most newer modems have 
"nonvolatile memory" (or NRAM) which can be used to 
store configurations. Use a terminal program to type the 
configuration commands you desire, then use AT&W to 
write the configuration to memory. After that point, ATZ 
will restore your "saved" configuration instead of 
defaulting to factory settings. 

Newer and more powerful modems have dozens more 



76 CNet PRO 3 Bulletin Board Service 



configuration options. In general, the "factory" settings for 
these options will be satisfactory. However, if you would 
like more information, or if you are unconfident about 
configuring your modem(s), there are several example 
configuration files on the CNet distribution disks to help 
you along. 

The fields you see on the "modems..." screen are as follows: 

Device and unit: these correspond to the specific serial 
port type and driver that you are using. The Commodore 7 
port A2232 card uses "serial.device" and unit numbers 2 
through 8. The built-in serial port is "serial.device" unit 0. 
Consult your card's manufacturer or technical 
documentation for details. 

Idle baud: the baud rate that will be used for 
communication with the modem when the port is "idle." 
Generally, this is the highest baud rate the modem can 
support. Because of Amiga hardware limitations, it is 
recommended that you not exceed 19200. Settings higher 
than 19200 may result in higher than normal "garbage" 
during file transfers, especially in the case of a multi-line 
BBS. 

ESC code (escape code): if your modem will not properly 
support the DTR-drop capability mentioned above (that is, 
the BBS appears unable to hang-up on a user), you need to 
use the "ESC code" method of hanging-up. By default, a 
modem's escape code is 43 (the "+" sign). You probably 
already know that while your modem is connected to a BBS 
in terminal mode, you can press "+" three times, then ATH 
to hang up. By setting the "ESC code" to 43, CNet will do 
the same thing. Often, however, you will want to prevent 
users from hanging themselves up (and sometimes crashing 
the BBS at the same time depending on the modem type) 
by pressing "+" three times while at an input prompt. To 
get around this, set the ESC code to something "untypable" 
like a 30 or 31. When you do this, you need a 
corresponding "S2=30" or "S2=31" in your "init #2" string. 
CNet will use DTR-drop hang-ups when the "ESC code" is 
set to 0. 

Shared: set this flag if another program must share this 
port's serial device at the same time. If you use TrapDoor 



The Contigura tion Editor 77 



for this port, but are NOT using "trapwake" (described 
elsewhere) you will need to place a checkmark in this box. 

Locked: place a checkmark in this box if you wish to use 
RTS/CTS flow control on this port. For high speed 
modems, you usually DO want to use RTS/CTS flow 
control. When "locking" the baud rate, you will want to set 
the "idle baud" at the HIGHEST rate your modem will 
support. Most 9600 and 14400 baud modems use a locked 
baud rate of 19200. 

8nonel / 7evenl: the serial port's parity checking and 
word size. The "de facto" standard in BBS 
communications is 8nonel. The 7evenl option is provided 
for those areas of the world which continue to use the older 
protocol. 

Init #1: CNet will send two initialization strings to your 
modem when the port is first opened, and again after each 
caller logs off. The first initialization string generally 
contains "ATZ" which is the command to "reset" the 
modem to the saved defaults. 

Init #2: this string is sent immediately after #1, and 
generally contains commands which change the modem's 
configuration. You should be especially sure to include 
commands which "undo" what is done by "off hook," 
"terminal," and "termlink." 

Hang-up: this string is sent to the modem after the "ESC 
codes" if you are not using DTR hang-ups. All Hayes 
compatible modems should use "ATH." 

Dial-out: "ATD" is the modem command to dial out. 
Change this to "ATDP" if your line is pulse. This string is 
used for auto-call back validation. 

Null modem: by directly connecting the serial port to 
another computer's serial port running a terminal program, 
you can create additional "local ports" for your BBS. Place 
terminals all over your house for family and friends to 
enjoy! (or create a serious office Local Area Network). 
With this box checkmarked, you can press ENTER twice to 
logon to the BBS from the terminal. 



78 CNet PRO 3 Bulletin Board Service 



Answer string: "ATA" for Hayes compatible modems. 
This is the string CNet sends to the modem after detecting a 
"RING." REMINDER: the modem should NOT be in 
"auto-answer" mode! 

Off hook: this string is sent to the modem when you are 
logging in to the port on your local console. This gives 
callers the illusion that the phone line is "busy." Normally, 
for local console logons, you will use a local port (one 
without a modem), generally port 0. 

Terminal: the string to be sent to the modem as you enter 
terminal mode. This can be used to turn the modem 
speaker on, reset the ESC code, etc. 

Term link: the string to be sent to the modem just before 
the port is used for dialing out by the "TERM" command 
(see the inter user communications chapter). Usually 
similar to "terminal" except you would not want to enable 
to modem's speaker. 

Ans. timeout: the number of seconds that the BBS should 
wait after issuing the "ATA." Modems either default to 30 
or 60. For high speed modems, connections can take a little 
bit longer as both sides "negotiate" a protocol, so 60 is 
recommended. In either case, this setting must match the 
modem's "S7" register. You can either use the ATS7=60 
command before setting the NRAM (described above), or 
you can add "S7=60" to your "init #2" string. 

Ans. pause: the amount of time (in TENTHS of a second) 
that the BBS should wait after receiving "RING" and before 
sending "ATA." One or two seconds (10-20) is an 
acceptable number, but you should set this value HIGHER 
if you are using caller-ID on the line. In this case, you 
should allow enough time for the phone to ring TWICE so 
that the caller-ID information has enough time to be 
transmitted. An acceptable value for caller-ID lines is 
probably 50-80. 

RING key: the keyword that CNet will be watching for to 
determine that the phone is ringing. 

CONNECT key: the keyword that CNet will be watching 



The CoaSguratioa Editor 79 



for to determine that a connection has been made (after the 
modem has sent "RING", and CNet has replied "ATA"). 

CALLER ID key: the keyword what CNet will be 
watching for to determine the caller ID information. Supra 
modems use "NMBR =" (followed by the phone number 
that is calling). Check your modem's documentation for 
information. 

Port password: you have the option of giving EACH 
PORT a unique password. In order to connect to this port, 
the user must enter its password. Leave the field BLANK 
to not use a port password. 

To edit a port's modem's configuration, click on the port 
number in the list of ports window. To add a new port, 
click on "new." After entering all information, click on 
"add." To remove a modem, first click on the port number, 
and then click on "remove." 

Fido-net... 

CNet supports up to 12 Fido-net-type "domains" 
(otherwise known as networks). The original Fido-Net 
domain is called, oddly enough, "Fido-Net." Others now 
include CLink and Family Net, with the list constantly 
growing. To edit a Fido-Net domain, click on its name in 
the "Fido-Net" window. Here are descriptions of the fields 
you see on this screen: 

A Fido-Net address has the format of 
ZONE:NEI7NODE.POINT. Each domain uses a RANGE 
of ZONE numbers (a "First zone" and a "last zone.") CNet 
uses this range to accurately determine the domain and 
destination of netmail, when, for instance, a user enters 
something like "Mail Ken@l:2410/215." That destination 
is within the Fido-Net domain because the Fido-Net 
domain has a "First zone" of 1 and a "Last zone" of 6, 
When you get ready to connect your BBS to a network, you 
will be informed of the valid Zone range. 

Fake/point-net: If you are a point you should get this from 
your boss. If you are a node, and wish to have points, you 
should select a number between 1 and 65534 which 
somehow corresponds to your net and node number (for 



I 80 CNet PRO 3 Bulletin Boa^rf Service 



example, if your address is 1:24/267, an obvious 
fake/point-net number would be 24267). Because the 
original Fido-Net specification did not account for pointer, 
this number is required to help Fido-Net software to deal 
with points. For example, if you are point "2" and your 
boss's point-net is 24267, your "fake" address is 
"1:24267/1" and your boss's fake address is "1:24267/0." 
This keeps older Fido-Net mailer software happy. Your 
actual four-dimensional addresses are still 1:24/267.1 and 
1 :24/267.0, however. 

Address (0): this is your actual assigned Fido-Net node 
number. If you are a point, use your boss's address here 
with your point number at the end. If you are a node, your 
point number is always 0. You must enter the full 
four-dimensional address here and in the next two fields. 
This is the address that will be used to export and toss 
messages. 

First/second AKA (1): if you are a network, area, or hub 
coordinator, you may have other addresses associated with 
your BBS. These fields exist so that you make these known 
to CNet. Netmail addressed to your address or either of 
your AKA's will be correctly imported. 

Echo origin: the default public message tag line. CNet 
will add this line (preceeded by " * Origin:") to every 
message that originates from your BBS. CNet will 
automatically add your BBS's Fido-Net address to the end 
of the line. From the subboard's EL screen, you can 
override this setting. 

Netmail origin: normally, netmail messages do NOT 
contain origin lines. This field, however, allows you to 
disobey this convention on networks which allow it. 

When editing an existing Fido-Net domain, the "areas...," 
"export-to...," and "mail routing..." buttons are active. 

The "areas..." screen is used to specify the echomail 
subboards which you send and receive over the currently 
selected domain. Following are the fields you see here: 

Areas: the name of the echomail area. This is the 
NETWORK name of the subboard. It is usually quite short, 



The Contigura tion Editor 81 



and does not contain spaces. You obtain these names 
directly from the network or from your "feed" BBS. These 
names should match the "unique dirname" on the EL 
screens for those subboards used to contain these echomail 
areas. Click on the name of an area in this window to edit 
its fields. 

Access level: each subboard has an access level. In order 
to "subscribe" to a subboard through the AreaFix utility, a 
node must have an access level equal to or higher than this 
value. Access levels for nodes are set from the 
"export-to..." screen. 

Access flags: In order to "subscribe" to a subboard through 
the AreaFix utility, a node must have all of the access flags 
that are set for the subboard. Access flags for nodes are set 
from the "export-to..." screen. There are 8 access flags, 
numbered from to 7. To "set" a flag, enter any letter or 
number in its place. To "reset" a flag, enter a "-" in its 
place. 

Dupe table: the number of messages that CNet will 
"remember" when checking for duplicate incoming 
echomail messages for this subboard. To set the default 
value seen here, and for more information, see the 
"tosser..." section below. 

Description: with the AreaFix utility, it is possible to 
request a list of the currently available echomail areas. 
Along with the short area name, CNet will provide the text 
that appears in this field to better describe what the area 
might contain. 

Export-to: a list of the BBS's which have been entered via 
the "export-to..." screen. BBS's which will send and 
receive this echo with your BBS are marked with a "+." To 
toggle the "+" on and off, click on the BBS's address in the 
"export-to" window. 

The "export-to..." screen allows you to enter the addresses 
of the systems with which you will participate in the 
exchange of echomail in the currently selected Fido-Net 
domain. Following are descriptions of the fields you will 
see here: 



82 CNet PRO 3 Bulletin Board Service 



Export-to: the list of systems with which you will transfer 
echomail. Each address is a four-dimensional address. To 
edit the information for a system on the list, click on its 
address in the export-to window. 

Archiver: the method that will be used to pack message 
packets destined for the export-to system. CONFIG will 
compose a list consisting of the archivers listed in the 
"archivers..." CONFIG screen for which a "pack" format 
was specified. "ARC" is perhaps the most widely used 
Fido-Net packer. 

Mail type: this determines the "flavor" of echomail 
packets that Toss will create. "Normal" should be used for 
most purposes. Use "crash" to create packets that your 
mailer will mail immediately, instead of waiting for the 
network mail hour. NOTE that your mailer will only see 
"crash" packets if you run the mailer periodically 
throughout the day, perhaps on a BBS event. Use "hold" to 
create packets that will only be sent if the "export-to" 
system calls YOU. 

Dimension: set this to 4D if you know that the export-to 
BBS uses four dimensional capable tosser software, 
incorporating the version 2+ Fido packet header structures 
(like CNet's Toss does). Set this to 2D if you are at all 
unsure. 

Access level: in order to "attach" itself to an echomail area, 
the export-to's access level must be equal to or higher than 
the echomail area's access level. 

Access flags: in order to "attach" itself to an echomail area, 
the export-to must have at least the access flags (and 
possibly others) that the echomail area does. There are 
eight flags, numbered from to 7. To "set" any flag, enter 
any number or letter at its position. To "reset" any flag, 
enter a "-" at its position. 

AF password: the password which the export-to must use 
when using the AreaFix utility. See a description of the 
AreaFix utility and the placement of the password in the 
"Tosser" chapter. 



The Conigura tion Editor 83 



Areas: the list of echomail areas configured from the 
"areas..." screen for the current domain. Subboards which 
will exported to and imported from the current export-to 
will be marked with a "+." To toggle the "+" on or off, 
click on the subboard name in the "areas" window. 

Often, netmail is not sent to its final destination right away. 
It is often "routed" to save phone charges. The "mail 
routing..." screen allows you to specify "rules" for the 
routing of mail. If you are a point, you will want to route 
ALL netmail to your boss. Here's what you will see on this 
screen: 

Route mail: a list of addresses to which mail can be sent 
using the BBS "mail" command. There is one wildcard "*" 
allowed here, which can be used in place of any one or any 
combination of the zone, net, node, or point components of 
an address. The "route mail" patterns should be listed in 
order of increasing generality, from most specific to most 
general. The LAST entry should ALWAYS be "*;*/*.*** so 
that ALL netmail will matched by this list. When sending 
mail, CNet begins at the top of the list comparing the 
send-to address to each entry on the list until a match is 
found. 

Route-to: the address to which the mail will be routed. 
The "*" wildcard is also allowed here, and will be replaced 
by the corresponding number the user specified when 
sending the mail. For example, routing mail addressed as 
"1:*/*.*" to "l:*/0.0" means to send all mail in zone "1" 
directly to the net coordinator of the net given by the 
original address. 

Mail type: the "flavor" of the mail packets created. In 
most cases, "normal" is used. If you want your mail 
packets to be sent immediately (as soon as your mailer 
runs, instead of at the netmail hour), set this to "crash." If 
you want your mailer to wait until the system calls YOU to 
PICK-UP the mail packets, set this field to "hold." 

To add a new route pattern to the END of the list, click on 
"new." Enter the "mail route" and "route-to" and then click 
on "add." To add a new route pattern anywhere else in the 
list, first click on the route pattern whose position you 



84 CNet PRO 3 Bulletin Board Service 



would like to assume. Next, click on "insert." After 
entering the "mail route" and "route-to," click on "add." 
The new route pattern will be inserted immediately before 
the route you first clicked on. 

To remove a route, first click on the route, and then click on 
"remove." 

Logs... 

CNet is able to add occurrences of specific events to the 
caller log. In addition to being listed in the caller log, it is 
also possible to give a specific event its own separate log. 
It is possible to log specific events only for specific users. 
Following are descriptions of the fields you see on this 
screen: 

Log ID: a unique number. There is a set of logs 
pre-configured into CNet. Each log has its unique number. 
CNet uses the Log ID number to locate specifk logs. You 
should not change, remove, or re-use the Log ID number of 
an existing CNet log. 

Optional log name: If this field is used, CNet will create a 
file by the same name in "sysdata:log" containing only 
entries for this log. You must handle the reading and 
deletion of these logs yourself. The only exception are 
"dloads" and "uploads" which are read and reset by the 
"LU" command. 

User log flag: the value of this field determines for which 
users this log is active. It may be set to a number from to 
31, representing one of the 32 possible "log verbosity flags" 
that each user has in his account. The event will be logged 
if the user has this flag number in his "log verbosity flags" 
field. For example, if the user log flag for feedback is 1, 
the event will be logged for a user with a log verbosity flags 
of "0-5,10" but will not be logged for a user with a log 
verbosity flags of "0,9-17." 

Log only when remote: you may wish to log 
maintenance-type events like KiUPost, ForwdMail, etc., but 
only if performed from REMOTE. Select this option to 
skip the logging of the event when it occurs from local 
mode. 



The Configuration Editor 85 



The majority of the log types are self explanatory from 
their 8 or 9 letter description. Here are some additional 
descriptions: 



Editmess: 

EditMail: 

ForwdMail: 

prompt. 

KillMail: 

NewBBS; 

NewChoice: 

NewVote: 

Vote: 

KillBBS: 

EditVote: 

KillVote: 

NetMail: 

AddSubb: 

Adopt: 

CallLog: 

Dump: 

EditAcct: 

EditAttr. 

EditFile: 

Edit Group: 

EditSubb: 

EntryFile: 

ExitFile: 

FbackRead: 

KilUtem: 

KillResp: 

KillS ubb: 

KillUser. 

MaintLog: 

Moveltem: 

NuserRead: 

ReadFile: 

TestFile: 

Transform: 

Validate: 

XferLog: 

ChatReq: 



the subboard ED command, 
the MV command from Main, 
the FOR command from the 



mail-read 



the MV command from Main. 

an addition to the BBSList. 

a choice added to an existing Vote topic. 

a new vote topic. 

a vote cast. 

a removal from the BBSList. 

a vote topic altered. 

a vote topic removed. 

Fido-Net mail. 

the AL subboard command. 

the AO subboard command. 

the LC command. 

the DUMP command. 

The EA command. 

the subboard AT command. 

the WF command. 

the EG command. 

the subboard EL command. 

the subboard EN command. 

the subboard X command. 

the VF command. 

the subboard K command. 

from the subboard ED or end-of-post K 

command. 

the subboard KL command. 

from the EA command. 

the LA command. 

the subboard ML command. 

the VN command. 

the RF command. 

the subboard TEST command. 

the subboard TRANSFORM command. 

The subboard V command. 

the LU command. 

the C command. 



86 CNet PRO 3 Bulletin Board Service 


EditFing: 


The EF command. 


EditPref: 


the EP command. 


EditTerm: 


the ET command. 


EditUser: 


the EU command. 


Finger: 


the FI command. 


Identify: 


the ID command. 


OLM: 


the OLM command. 


Password: 


the PW command. 


YankStart: 


the Yank command. 


ArexxSays: 


the Arexx LOG command. 


MCI_Says: 


the MCI & command. 


NewName: 


the EU command when used to change 




Handle. 


FullMaint: 


when ID is used to gain full maintenance. 


BBSLIST: 


the L command from Main. 


CC: 


the CC command. 


Join: 


the J command from Main. 


Monitor, 


The MON command from Main. 


TermLink: 


The TERM command from Main. 


RunPFile: 


when a pfile is run. 


ReadNews: 


when a news area gfile is read. 


Shell: 


the S command from Main. 


ReadGFile: 


when a gfile is read. 



To edit a log procedure, click on the log name in the list of 
logs window. Use the mouse to click into the fields you 
wish to edit. To add a new log for use from a CNet C pfile, 
click on "new." After entering all appropriate information, 
click on "add." Remember not to use the name or Log ID 
of an existing CNet log. To remove a log, first click on the 
name of the log in the list of logs windows. Then, click on 
"remove." Remember not to remove any of the default 
CNet system logs. 

Tosser... 

CNet's "tosser" is responsible for packing Fido-Net 
messages into bundles ready to be transported over the 
network. It is also responsible for unpacking incoming 
bundles and distributing the messages to the appropriate 
subboards and mailboxes. See the tosser chapter for more 
information. The options and fields on this screen are used 
to control the tosser' s operation. These options and fields 
are as follows: 



The ConSgura ft'on Editor 87 



Input buffer: This determines the amount of memory (in 
BYTES) to use for reading from the ".PKT" files. The 
higher this value, the less often Toss will have to read from 
the disk, making its operation more efficient. 100,000 is a 
reasonable setting. Try something higher if you have 
memory to spare. 

Output buffer: This determines the amount of memory 
(in BYTES) to allocate for EACH of your export-to nodes 
during a toss. 50,000 is a reasonable value. Try something 
higher if you have the extra memory. 

Default dupe table size (in number of messages): Toss is 
able to remember messages that it has seen. It does this by 
making a table of the origin addresses and MSGID serial 
numbers as it tosses them. You can make this table as large 
as you want, but remember that memory will be allocated 
for EACH area that you export-to during a toss. Set this to 
to disable the feature. To have this feature work, you 
must insure that there is a directory "mail:dupetables/" on 
your hard drive. This is where the actual "dupe-data" will 
be stored. This is a DEFAULT setting. From the 
"subboards..." screen, you can change the dupe-table size 
on a per-subboard basis. 

Send echomail from "unknown" systems to "bad": If 
Toss detects incoming echo-mail from a BBS which is not 
configured to receive the area (as configured in the 
"export-to..." screen), this option will cause those messages 
to be sent to the BAD MESSAGES area. This option 
provides some security against messages arriving into a 
subboard from a BBS with which that subboard is not 
configured to communicate with. If unselected, echomail 
from "unknown" systems is imported. 

Trapdoor front-end version 1.74 or higher: If you select 
this option, Toss will use full "four-dimensional" filenames 
(like 1.255.2410.0.OUT). Without this option, Toss will 
generate the MS-DOS type HEX filenames (like 
000000 1F.OUT). The four-dimensional filenames are 
more efficient and less ambiguous, but the option for hex 
filenames is provided for compatibility. 

Send "dupe" echomail to "bad": This option tells Toss 



88 CNet PRO 3 Bulletin Board Service 



what to do with "dupe" echomail, as determined by the 
dupe-table (described above). If selected, all "dupe" 
echomail will be routed to the BAD MESSAGES area. If 
unselected, all "dupe" messages will simply be "skipped" 
(that is, LOST). 

Show kludges in imported messages: Normally, the 
control sequence lines that Toss and other networking 
software use to route messages are stripped from messages 
as they are imported. If you really WANT to see these lines 
in your message bases, select this option. Changing this 
option will not affect messages that have already been 
imported. 

Without point-net, use 3D address in paths: If you are a 
point, and your boss does not have a pointnet established, 
this option tells Toss to add your point number to PATH 
statements on messages that you export. You should ask 
your boss whether or not he wants to see this happen. 

Xfido/Ifido start messages with 2.msg: This option is 
included really for sysops NOT using the CNet Tosser, but 
instead some other third party software. If this option is 
selected, the "l.msg" files will not be used by Xfido and 
Ifido. If this option is unselected, the "l.msg" files will be 
used as normal messages. You should select this option if 
you are using TrapToss, but leave it unselected if you are 
using Foozle 



Logging On 89 



CHAPTER 5 - Logon procedures 

There are three ways to enter the BBS— local mode, remote 
dial in, and null modem. 

Local mode is use of the BBS "locally" (as opposed to 
remotely), from the system "console." Although sysops 
usually reserve one modemless port for local mode use, you 
can enter local mode on any running port, regardless of 
whether or not there is a modem attached. If there is a 
modem attached, CNet will send it the "off-hook" 
command sequence (definable from the CONFIG 
"modems..." screen) to make it appear "busy" to your 
callers. To enter local mode, open the port's screen, and 
press the SPACE BAR. To enter local mode and 
immediately logon as account number one, press the TAB 
key instead. You may only use this "AutoLogon" feature if 
the control panel is not "locked." If you prefer, Logon and 
AutoLogon are commands from the first pull-down menu. 

When your modem sends a "result code" to your computer, 
CNet will display this result code verbatim in the control 
panel, and at the bottom of the port's status window (if the 
port's screen is open). This lets you know what your 
modem is "saying" at all times. CNet makes use of several 
fields on the CONFIG "modems..." screens to interpret 
these codes. Most important are the "ring" and "connect" 
keywords— CNet uses this information to determine when 
to respond with "ATA" (to tell the modem to answer) and 
when a connection has been established. Once a 
connection has been established, CNet uses the carrier 
detect signal from the modem to determine when the 
connection has been lost. 

Modem Answer Problems 

If CNet appears to answer the phone, and then hang-up 
before the user fully connects, this could be the result of 
one of several problems: Your modem should NOT be in 
auto-answer mode to work with CNet. Check by looking at 
the "AA" light on your modem if it has one-it should NOT 
be on when the modem is waiting for a call. Some 
primitive modems do not support carrier detect (CD) 
indication. Your modem must have that basic feature to 
work with CNet. Also make certain that your modem cable 



90 CNet PRO 3 Bulletin Board Service 



uses at least a full "7-wire" setup. If you have a "CD" light 
on your modem, it should be OFF when CNet is waiting for 
a call, and come ON once there is a connection. You may 
need to increase the amount of time your modem allows to 
complete a connection. High speed modems often require a 
full 60 seconds connect properly. Changing the connection 
time is covered in the "modems.." section in the chapter 
about the configuration editor. Finally, it could just be line 
noise. Some high speed modems are so particular that they 
will simply "hang-up" if they detect even the slightest noise 
problem. 

Null Modem Setup 

One final way to connect to the BBS is through a "null 
modem" connection. A null modem connection consists of 
a null modem CABLE (a specially cross wired serial cable), 
connected directly from a serial port on the BBS computer 
to the serial port of another stand-alone PC or terminal. 
The null modem port is configured from the CONFIG 
"modems..." screen just like other ports, except that you 
should check mark the "null modem" option. Null modem 
connections can operate at the maximum serial speed 
possible between the two computers. From the null modem 
terminal, press the ENTER key TWICE consecutively (and 
quickly) to enter the BBS. 

The logon prompts 

After connecting, CNet displays a version number and 
copyright message. Under NO circumstances are you 
allowed to change this information. 

The first prompt to appear is one asking the terminal type. 
Knowing this right away allows CNet to display the 
opening screen (sys.start) according to the user's choice of 
terminal type (if you have createa separate screens). The 
choice that the user makes here will be used for the call. 
The user can use the ET command to change the terminal 
type once he's logged on. 

If the user presses ENTER at this prompt, CNet will assume 
an ASCII (dumb) terminal type. If the user selected an 
actual terminal type on his last call, CNet will prompt the 
user with "use previous term settings?" before settling for 
ASCH. 



Logging On 91 



The next prompt is "Enter NEW if you have no account. 
Enter your handle." You may actually enter your handle, 
your real name, or your account number at this prompt. 
Your real name can only be used for logon if you have 
chosen it not be private. If you enter an incorrect name, 
CNet will allow you to "search" the user list if the CONFIG 
flag "allow who/user search at logon" is selected. If CNet 
is UNABLE to find your name or handle from this prompt, 
changes are that your "sysdata:pointers" file has become 
corrupt. Logon using your account number and then run 
the maintenance program "pointers" to correct the problem. 

Enter "NEW" at this prompt to run the new user logon 
procedure (see the next section). You will have to do this 
in order to install yourself as "user #1" on your BBS before 
you open it up to remote callers. 

Enter "WHO" at this prompt to list the system's current 
users. This command is only available if the CONFIG flag 
"allow who/user search at logon" is selected. 

The new user procedures 

The new user procedure begins with terminal configuration 
questions (computer type, line feeds, screen size, etc.). 
Next, personal data questions will be asked— country, 
address, handle, real name, etc. If a user enters a banned 
phone number (one appearing in the "badnumbers" list) he 
is immediately disconnected at this time. Next, a couple of 
select user preferences will be queried, such as "more?" 
mode and time zone offset. Finally, the new user and sysop 
questionnaire questions will be asked. All of the 
configuration and preference settings are described in the 
"preferences" chapter. Modification of the new user 
questionnaire files is discussed in the "modifications" 
chapter. 

CNet checks for duplicate handles, real names, and handles 
and real names that match the "badnames" file at the END 
of the new user procedure. If "avalid files" exist, CNet then 
offers auto-call-back validation (see the next section). 



92 CNet PRO 3 Bulletin Board Service 



Auto-call-back at logon and 
Auto-call-back validation 

Auto-call-back validation allows you to have CNet 
automatically validate new users (give them an access 
group of 1). If CNet is able to call the user back at his data 
phone number, make a connection, and then authenticate 
the user's identity, he can be considered "validated." This 
saves you the time of having to manually "voice validate" 
users by calling them blck yourself Auto-call-back 
validation is activated simply by creating "avalid files" 
(lists of local phone number prefixes) as described shortly. 

Auto-call-back validation is offered to a new user after he 
completes the new user procedure. If for some reason the 
auto-call-back was unsuccessful or skipped, the user has the 
option to try again by using the "X" command from the 
Main prompt. Both successful and unsuccessful 
auto-call-back's are noted in the call log. 

Auto-call-back at logon can be either a security feature, or a 
user convenience. When auto-call-back at logon is enabled, 
CNet will attempt to hang-up and RETURN the phone call 
as soon as the user completes the logon. Auto-call-back at 
logon is enabled with a privilege flag in the user account 
called "AutoCallBack ©Logon." If you set this flag to 
"Opt," CNet will ASK the user if he would like the call 
returned. If you set this flag to "Yes," CNet will FORCE 
the call to be returned. 

By default, auto-call-back at logon will only return phone 
cadis that are "local" as determined by your "avalid files." 
By using a BBS event, you can change the operation of 
auto-call-back at logon. The event command is "callback." 
An argument of "0" will disable auto-call-back at logon. 
An argument of "1" will enable it to dial ALL numbers, 
EVEN LONG DISTANCE NUMBERS. An argument of 
"2" will enable only "avalid" numbers (this is the default). 

Creating "avalid" Files 

An auto-call-back configuration file ("avalid file") is used 
to tell CNet which numbers it may dial, and how to dial 
them. Typically, you configure this file to tell CNet which 
numbers are local (AKA, FREE) for you to call. In some 



Logging On 93 



areas near area code borders, it is necessary to dial the area 
code, even though the number is a local phone call. This is 
taken into account in an avalid file. Each line of an avalid 
file has the following format: 

AREACODE DIALCODES EXCHANGES 

The AREACODE is the "long distance" part of a phone 
number (in CNet, the digits to the left of the hyphen). The 
DIALCODES are the extra digits necessary to actually dial 
the number (like a "1" or a "1" and the area code). The 
EXCHANGES is a RANGE of valid local phone number 
exchanges (usually the first three digits of the "local" part 
of the phone number). For example, if my phone number 
were 313-4531000, and all 313-453, 313-454, and 313-455 
numbers were local calls by simply dialing the last 7 digits, 
I would add the following line to my avalid file: 

313 - 453-455 

NOTE when there are no DIALCODES, as in this example, 
it is necessary to place a hyphen ("-") in that field. If I 
lived in an area where it was local to call another area code, 
and the phone company required that I dial 1 and the area 
code, I could have entered a line like this: 

616 1616 255-256 

The auto-call-back routines will work with numbers of any 
length. This means that the auto-call-back routines should 
work in any country. The following might be a legal entry 
in a small European country with phone numbers like 
"4245-66233 1." 

4245 04245 66-67 

The auto-call-back routines will work with very SPECIFIC 
numbers. If, for example, my number is 313-4531000, and 
I would like to auto-call-back just ONE PERSON in 
Florida, the following line would work: 

813 1813 5551212 

Your phone service may change the definition of a "local" 
call depending on the time of day. You might also have 
different exchanges on your phone lines, allowing different 
local calling areas. To take advantage of these 



94 CNet PRO 3 Bulletin Board Service 



circumstances, CNet allows different auto-call-back 
("avalid") configuration files at different times of the day 
and on different ports. When CNet searches for an avalid 
file, it searches in the following order (and stops when it 
finds one): 

systext:avalidX.Y 
systext:avalidX 
systextravalid.Y 
systext: avalid 

X is the "avalid number." The avalid number is by default 
"0." You can use a BBS event to set the avalid number 
depending on the time of day. Set the event command to 
"avalid" and the arguments to the avalid number. Y is the 
current port number. 

Caller ID 

CallerlD gives you a way to digitally determine the phone 
number of the person calling you. In order for it be useful 
on a BBS, you must have a modem which can read it from 
the phone line. You must also order the service from your 
local phone company. 

The CallerlD information is transmitted over the phone line 
between the 1st and 2nd ring. In order to allow your 
modem enough time to "see" this information, you must 
lengthen the time between "ring" and "answer"-the default 
setting of 12 (2,4 seconds) is too short. From the CONFIG 
"modems..." screen, select a port, and then set the "answer 
pause" field to 30-35 (6-7 seconds). 

On the same CONFIG screen, the "caller-id key" should be 
set according to what your modem transmits just before 
sending the phone number. The default setting of "NMBR 
=" will work with Supra FaxModems with CallerlD chips. 

With this level of configuration, CNet will report the 
CallerlD phone number in the call log, and will list account 
numbers which have a matching data phone number. If 
there are more than 7 matches, the list will end with "...." 

Each access group and user account has a variable which 
describes HOW the CallerlD information will be used. Its 



Logging On 95 



possible values are: 

No action 

Just log it-user never knows it's there. 

Copy to data# 

The CallerlD phone number will be copied to the user's 
account each time he calls. This allows you simply to keep 
track of where the user is calling from. 

Musi exist 

If a user calls without CNet receiving a CallerlD phone# 
from the modem, he will be disconnected. No "private" 
calls will be allowed. 

Must exist/copy 

A combination of the two functions above. 

#'$ must match 

If the user's Data phone number in the BBS records does 
not match the callerID#, he will be disconnected. 

If the CallerlD variable for access group is set to anything 
other than "No action", new users will not be able to type in 
their own data numbers—they will be copied from the 
CallerlD information automatically. 

Each user account has a flag called "Phone Verification", 
accessible from the EA screen. It allows you to keep track 
of whether or not a user's phone number has been 
validated. Its possible values are: 

UNV Invalidated 

ACB1 Auto-call back was once successful at data#, but 

caller- id has since reported another number. 
ACB Auto-call back was successful at data# 

CID1 Caller-ID # once matched the data#, but the user has 

since called from another number. 
CID Caller-ID # MATCHES the user's data# 

SYS Sysop validated (by voice or however). This will be 
overridden by caller-id or auto-call back operations. 



96 CNet PRO 3 Bulletin Board Service 



System-wide CallerlD Setup Options 

Several CallerlD options exist from the CONFIG 
"options..." screen: 

If "validate new users with CallerlD" is selected, new users 
will automatically be given access group 1 if CallerlD 
information was available to supply their data phone 
numbers. 

If "skip handle prompt with CallerlD" is selected, CNet will 
skip directly to the "enter your password" prompt when the 
user calls. If more than one user shares the same data 
phone number, CNet will search for an account in that 
group with a matching password. If you press ENTER at 
the password prompt, you will still be able to logon by 
handle. 

If "don't answer without CallerlD match" is selected, CNet 
will not even pick up the phone unless there is a user with a 
data phone number that matches the one that is calling. Use 
this option for a VERY private BBS. 



The Main command level 97 



CHAPTER 6 - The BBS User Interface 

CNet command and subsystem structure 
—an overview 

CNet uses a parsed-input free-form command prompt 
structure. Unlike some other BBSs which use only simple 
one-key ("hot-key") commands, CNet allows very 
expressive (and powerful!) commands. For example "read 
global new tome since 1-7-93 until 7-7-93" is a valid 
subboard command. To make things easier to remember 
and type, CNet does support command aliasing. In the 
previous example, "RA" could have been used in place of 
"read global new." For more information about the 
formulation of commands and command aliases, see the 
"BBS modifications" chapter. 

Because CNet parses input, there may be occasion to add 
quotation marks around arguments with spaces (such as 
handles and names). For most commands that operate on 
names and handles, that handle or name is the ONLY 
argument they take, however, so CNet will automatically 
"add" the words together. For example: 

read mess by "torn sawyer" 

requires quotations around torn sawyer, but 

mail ken pletzer 
or mail "ken pletzer" 

will both work. 

Most commands have "verbose" and "abbreviated" 
versions. You may use "Edit Preferences," "E P," (E space 
P) or "EP" to accomplish the same thing. View the 
contents of the "cnet:bbsmenu" text file to see CNet's full 
command structure. Adding or changing items in that file 
modifies the commands available to ulers on the BBS. 

CNet consists of a "Main" level, and a series of other 
"command prompts." The Main level is the central point in 
the BBS from which the other areas are reached. Upon 
"Quitting" from a command prompt, you are eventually 
returned to the Main level, "Quitting" from the Main level 
is equivalent to logging off. 



98 CNet PRO 3 Bulletin Board Service 



Commands available at all command prompts 

There exists a set of commands which is available from 
every command prompt. Unlike some other BBS's, CNet 
offers these commands "everywhere" to provide a 
consistent and predictable user interface. These commands 
are as follows (many of them are more fully described 
elsewhere): 

? : This is by far THE most important command on a 
CNet BBS. The question mark provides a summary of 
commands each with one line descriptions. All menus are 
found in the directory systext;menu. 

ACcount: Account balance information. Provides a 
summary for the accounting system activity for the current 
call. Also displays balance and "minimum allowed 
balance." See the "accounting..." 1 section of the CONFIG 
chapter for more information. 

AG: Activity Graph. Display the graph of system 
activity (percent) versus time of day. This is the same 
graph displayed and reset from the control panel. 

CC: Chat call. Ask a user on another port to chat. See 
the "inter-user communication" chapter for more 
information. 

Chat: Ask the sysop to chat. If the user privilege flag 
"sysop chat" is set to "Def," you may "ring" the sysop if the 
control panel's pull down menu option "sysop is in" is 
check-marked. This privilege flag may also be set to "No" 
or "Yes" to disable or enable ringing of the sysop at all 
times regardless of the pull down menu's setting. 

CRedits: Display your file transfer credit information. 
This includes daily totals, overall totals, and credit 
balances. If you are in a subboard, the default file and byte 
ratios for the subboard are displayed. 

DS: Download selected. Displays a list like "SS." An 
option is given to TEMPORARILY remove files from the 
list. Files that you remove from the select list at this 
prompt will be REPLACED once the download is 



The Main command level 99 



complete. This gives you the option of PARTIALLY 
downloading your list of selected files. 

EA: Each account(s) (sysop). See the "user and access 
group" chapter for more information. 

EF: Edit finger files. Use this command to change your 
responses to the new user questions. Other users can view 
your finger files using the "FINGER" command. 

EG: Edit access group(s) (sysop). See the "User and 
access group" chapter for more information. 

EP: Edit preferences. Macros, signatures, More?, user 
dictionary, network aliases, help level, etc. 

ET: Edit terminal preferences. Screen size, ANSI 
emulation, graphics set, etc. 

EU; Edit user information. Handle, name, address, 
street, birthday, gender, etc. 

Feedback: Send a message to the sysop's feedback 
mailbox. Sysops use "VF" to read from the feedback 
mailbox. An option on the CONFIG "options..." screen 
may be used to re-direct feedback to the sysop's mailbox 
(account #1). 

FIND: Find a file anywhere on the BBS. This command 
searches your subboards for files matching the pattern you 
specify. You may specify wildcards like #,?,*, etc. If you 
do not specify wildcards, "*" is added to beginning and end 
of your search-text. FIND will only find files if the 
search-text is found in the first 9 characters of the filename. 
The "Browse" function is used to display, read, download, 
etc., found files. See the subboard chapter for more 
information. 

FReq: File request. With the appropriate privilege flag, 
you may use this command create or add to the ".REQ" 
files that mailers like TrapDoor use to request files from 
remote systems. The command takes a Fido-Net address as 
its argument. 



1 00 CNet PRO 3 Bulletin Board Service 



Help: CNet's HELP utility. Provided so that you may 
receive more detailed online information about specific 
commands and features. Reads files from the systext:help 
directory. 

Hide: Remove yourself from the "WHO" display so that 
other users can not see you. See the "inter-user 
communication" chapter for more information. 

ID: Remote system operators must use this command 
before they will be given system operator privileges. The 
password for the ID commands is set using the Shell 
"Setpass" program. 

INFO: Displays the file "systext:sys.info." You may edit 
this file to describe your systems hardware and software 
configuration. Other pertinent BBS information may also 
be kept here. 

LA: Log of automaintenance. When users or files are 
deleted by automaintenance, a note is made in this log. 
Option is given to restart this log. 

LC: Log of calls. Records log ons, log offs, and lots of 
other information about user activities while online. See 
the "logs..." screen in the CONFIG chapter for more 
information. 

LU: Log of uploads and downloads. Actually two logs 
read one after the other. 

Mail: Send mail to another user. Also "MS" for mail 
send. See the "mail" chapter for more information. 

MM: Multi-mail. Send "bulk" and "party" mail. See the 
"mail" chapter for more information. 

MR: Read your mailbox. See the "mail" chapter for 
more information. 

MUffle: Prevent users on other ports from sending 

OLM's to you. See the "inter-user communication" chapter 
for more information. 

NF: New files scan. Search the subboards for new file 



The Main command level 101 



uploads since your last call. See the subboard chapter for 
more information. 

NM: New messages scan. Search the subboards for new 
messages posted since your last call. See the subboard 
chapter for more information. 

NSAL:New scan at logon. A combination of the NF and 
NM commands. See the subboard chapter for more 
information. 

NU: Read the new user message "systext:sys.nuser." 
This file often contains the "rules of the BBS". It is 
displayed to new users before they first log on. You should 
edit this file to express the rules, content, and special 
character of your BBS. 

OLM: Send a message to a user on another port. See the 
"inter-user communication" chapter for more information. 

PW: Change your password. You should change your 
password at least once every six months. Users with high 
access should change passwords more often. Users must be 
cautioned to NEVER use the same password on any other 
BBS. 

QWK: Upload a QWK reply packet. A QWK reply 
subboard must exist somewhere on the BBS. See the 
subboard chapter for more information. 

RM: Read marked messages. Messages are "marked" 
using the text search subboard commands (Z and ZG) when 
you opt to "use a background task." 

SS: Scan selected. Display a list of the files that you 
have selected for downloading. A summary of credit 
information and estimated time is provided. An option is 
given to remove items from the list. 

STatus: A quick display of the most important account 
information. Displays your access, your address, important 
system dates, and other information. 

Time: A simple display of how long you have been online 
and how long you have left. 



1 02 CNet PRO 3 Bulletin Board Service 



WHO: Display a list of ports and who is online. See the 
"inter-user communication" chapter for more information. 

UM: User monitor. Receive OLM's when other users log 
on and log off. See the "inter-user communication" chapter 
for more information. 

WHY: Display the "reason" that your last file transfer was 
unsuccessful. 

*C: Clear your selection buffer. All files that you 
selecting using the "*" command will be removed. Your 
private "yank" files will be deleted. 

The "Main" command level 

The "Main" prompt is the command prompt at which the 
user is placed after successfully logging in to the BBS. The 
Main command level can be thought of as a "central" 
point—a "hub" connecting the various parts of the BBS. 
Following are the commands available to you to transport 
yourself to these other locations: 

Base: CNet's message base. The actual "Bulletin Board" 
part of the system, where text messages are posted and 
replied to. See the subboard chapter for more information. 

Gfiles: General text files base. See the gfiles/pfiles chapter 
for more information. 

Join: Enter the join tele-conference. See the inter-user 
communications chapter for more information. 

List: The BBSList feature. With easy to use prompts and 
menus, CNet is able to store tens of thousands of BBS 
listings in a quickly accessed B-tree structure (thats 
programmer's lingo for "fast"). Full support is in place for 
international numbers. Listings are automatically removed 
after a number of days specified by your setting on the 
CONFIG "limits..." screen. 

MOnitor: Monitor the activity of users on other ports. 
See the inter-user communcations chapter for more 
information. 



The Main command level 1 03 



MV: Mail verify. Edit or kill mail once you've already 
sent it. 

News: The news files base. Similar to a gfiles base, but 
new items are automatically displayed to users at logon. 
See the gfiles/pfiles chapter for more information. 

Off: Leave the system. Some other BBSs like to call this 
very important command "Bye" or "Logout." The "Off 
command is also available from MOST other command 
prompts. 

Pfiles: The program files base. This is where external 
games, utilities, and "door" files can be made available to 
your users. See the gfiles/pfiles chapter for more 
information. 

Relogon: Logoff and be immediately taken to the 
logon prompt. This allows users running low on time to 
start another call without risking losing the modem to 
another caller. Only users with the "relogon" privilege flag 
set in their accounts may do this. 

Shell: The online shell for system operators. An actual 
AmigaDOS command shell is opened for online use! 
Requires a password as set using the "Setpass" program. 
Access to the online shell should be reserved only for 
yourself, or for highly trusted co-sysops who FULLY 
understand the shell commands. CNet uses Matt Dillon's 
"FIFO" programs to accomplish the magic of the online 
shell. CNet will read from a "shell-startup" file in the S: 
directory to set up the shell environment. You may set up a 
special startup file by editing your BBSTEXT file to 
change the name of the file CNet will look for. This file 
should contain the "NOREQ" command to prevent 
AmigaDOS from throwing up "requestors" which require a 
local mouse click to handle. You may wish to add other 
commands to this file (like alias and path). One example 
would be to use ALIAS to set "Q" equal to "ENDCLI." 
See your AmigaDOS manual for more info about fun with 
those commands. 



1 04 CNet PRO 3 Bulletin Board Service 



TErm: Terminal mode. Authorized users can "dial out" on 
free ports. See the inter-user communications chapter for 
more information. 

UL: User list. A program to list or search the user base. 
You can search for specific handles, names, access groups, 
phone numbers, or countries. You can order the output by 
ID number, handle, or phone number. 

Uploads: CNet's file transfer base. See the subboard 
chapter for more information. 

Vote: CNet's voting booth. With easy to use prompts and 
menus, CNet is able to hold "topics" to be voted upon. 
Users with the appropriate privilege flags can add topics, 
add additional choices to existing topics, or kill/edit topics. 

X: Auto-call back validation. If for some reason the 
auto-call back failed during the new user procedure, this 
command is in place to re-enact that event. 

The input prompt 

The only "control" key you ever really need to use to enter 
a command is the ENTER key, and maybe the 
BACKSPACE key to correct your mistakes. Many other 
control key commands are available, however, for the 
advanced "power" user. They are ( A just means to hold 
down the control key): 

A B: Beginning. Return cursor to the start of the line. 

A E: User defined macro #1 (use EP command to edit). 

A F: User defined macro #2 (use EP to edit). 

A K: KOI. Delete everything under and to the right of the 
cursor. 

A N: End. Bring cursor to the end of the line. 

A R: Move to the next word. Equivalent to using A U 
until you reach a space. 

A T: Move to the previous character. ANSI terminal 
users may use the left-arrow key. 

A U: Restore the next character. ANSI terminal users 
may use the right-arrow key. 



The Main command level 1 05 



A V: Verify. Re-display the prompt and input line. 

A W: Move to the previous word. Equivalent to using A T 
until you reach a space. 

A X: Cancel the input line and begin again. 

When using an ANSI terminal, the cursor can be moved 
anywhere in the input line to do inserting and deleting. 
When ENTER is pressed, however, everything under and to 
the right of the cursor is lost. 

When using an ANSI terminal, the up and down arrow keys 
may be used to access a command history of the last 10 
commands entered. 

Whenever you are given an input prompt already 
containing text, that text will be "highlighted" (dark on 
light). To replace that text with any other text, just begin 
typing. To add to (or modify) the text you see, press the 
space bar, left arrow key, or backspace key. To complete 
remove the text, press the DEL key. 

Ranges of numbers 

Many commands operate on a RANGE of items. Many 
data fields take a RANGE of numbers. How do you 
specify this range of numbers to CNet? CNet's range 
parser is extremely flexible and powerful, and quite simple 
once you understand its rules. In computer fashion, a range 
looks like x[-y][,z[-w]].„ (did everyone understand that?) 
But let's take the example of reading items from a subboard 
prompt: 



Rl 


Read item 1 


Rl-5 


Read items 1 through 5 


Rl,j 


Read items 1 and 5 


Rl-5,10 


Read items 1 through 5 and 10 


Rl-5,10-15 


Read items 1 through 5 and 10 through 15 


Rl, 3,5 ,7,9 


Read items 1,3,5,7 and 9 


R7,l-3 


Read items 7 and then 1 through 3 


Rl,l 


Read item 1 twice 



A maximum of 10 commas may be used. Individual "-" 
ranges must go from a smaller number to a larger number. 



1 06 CNet PRO 3 Bulletin Board Service 



Pausing and breaking 

CNet will recognize the ASCII standard control-S to pause 
text display. Any other key (except control-S!) will resume 
text display. This pausing method is implemented through 
software, however, so may appear "delayed" due to modem 
output buffering. When using high speed modems (9600 
baud or better), it is advised that you instead use CNet's 
"more?" and paging features whenever possible. 

Whenever you want to CANCEL something, control-C is 
your best choice of key sequences. Control-C will abort 
menus, messages, and many features which ask the user to 
wait (such as text searches and user lists). The slash ("/") 
may be used as an alternative to control-C. 

A less potent "cancel key" is the SPACE BAR. The 
SPACE BAR is used to "skip" to the next response when 
reading an item with multiple responses. With high speed 
modems and CNet's "more?" and paging features, it is 
rarely used for this purpose any longer. The space bar will 
also abort menus. The space bar is not an effective way to 
abort searches. 

Skipping prompts for faster action 

Many commands have one or more "Yes/No" prompts 
associated with them, each of which has a "default" 
response of either Yes or No. To skip these prompts, 
automatically selecting the default responses, add an 
exclamation point ("!") to the end of the command. 

"O!" will log you off without asking "are you sure?" and 
"want to leave feedback?". "F!" will immediately enter the 
editor to write feedback. "M John!" will ask for a subject 
and then enter the editor to write mail to John. "P!" (at a 
subboard prompt) will ask for a subject and then enter the 
editor to write a post, skipping the regular post option 
prompts. "R!" at the "Respond or pass" prompt will 
immediately enter the editor, skipping the prompts for 
addressee, etc. The exclamation point will work with ALL 
Yes/No prompts. 

The exclamation point has been programmed to work in 
many other situations as well. To read an item or file 



The Main command level 1 07 



"continuously," without "more?" or "respond or pass" 
prompts, add an exclamation point. This is especially 
useful when buffer capturing text. Control-C will still work 
to break text display. 

Busy sysops will appreciate the ability to use the '!' for 
certain maintenance commands. One example would be 
when cleaning out unwanted files from an Upload base. 
The command: "Kl, 5,7-9,12!" would kill files 1, 5, 7, 8, 9, 
and 12 without the need to answer any further prompts. 
Obviously, such power must be exercised with care. 



1 08 CNet PRO 3 Bulletin Board Service 

Notes: 



Access Groups and User Privileges 1 09 



CHAPTER 7 

Users, access groups, privileges, and limits 

CNet supports 32 "access groups," numbered from to 31. 
Each user of your BBS is assigned to just ONE of these 32 
groups at all times. Two "special" group numbers are and 
1 . Access group is the group to which NEW USERS are 
automatically assigned. Access group 1 is the group to 
which AUTO-VALIDATED (call-back or caller-ID) users 
are assigned. All other access groups may be configured in 
any way you choose. Although most people prefer to make 
group 31 the "sysop group," you can select any number you 
choose (2-31). The number 31 has no special meaning over 
the number 2, for example. For simplification, some 
people prefer to use only a small number of the access 
groups, maybe only numbers to 4. 

Access groups really have TWO functions. First, each 
access group has its own "number" from to 31. Many 
areas of the system (individual subboards and "list" areas) 
are protected with an "access groups" field. Such a field is 
set to a RANGE of access group numbers. Only users from 
those specified access groups may enter the area. 

Each individual user account contains the privilege flags, 
ratios and limits that are used to determine which BBS 
functions that particular user has access to, how many calls 
he may make during a day, how many minutes he receives 
for each call, etc. The second function of an access group 
is to carry a "default" set of these user privilege flags, 
ratios, and limits. Whenever a user is "assigned" to group 
or 1, or you manually change a user's access group number, 
the "new" access group's defaults are COPIED into the 
user's account information. 

Note that the access group settings themselves are never 
actually used to determine access to BBS functions—each 
user's account settings are used instead. This means that 
once a user has been assigned to an access group and has 
received the default settings from that access group, that 
user's account may then be "customized" by using the 
"EA" command and manually changing any of the privilege 
flags, limits, or ratios. In the extreme, with customization, 
a user can be a member of group 31, but have all of the 
settings and privileges of a default member of group 0. 



110 CNet PRO 3 Bulletin Board Service 



Note that if you again change that user's access group, the 
defaults from that new access group will be copied into the 
user's account, and any customization will be LOST. 

On the same token, because access groups are merely 
"default" access variable sets, when you change an access 
group's fields, this has no immediate affect on users who 
are already members of that access group. CNet provides a 
way to "apply" changes that you make to an access group to 
all of that access group's current members. This is called 
"transposing" access group defaults. The maintenance pfile 
"transpose" found in the maintenance directory of the pfiles 
area does just this. Transpose will ask you for an access 
group to transpose "from" and one to transpose "to." If you 
want to adopt the defaults of a particular access group into 
users' accounts who are members of that group, select that 
access group as BOTH the "transpose from" and "transpose 
to" groups. If you specify a different "transpose to" group, 
not only will users of the "transform from" group have their 
fields replaced with the fields from the "transform to" 
group, their access group numbers will be changed to that 
of the "transform to" group. This effectively allows you to 
change all members of one group to members of another all 
at once. 

The EG and EA commands 

To edit an access group default set, use the "EG" command 
followed by the group number (0 to 31). To edit a specific 
user's account, use the "EA" command. By specifying a 
RANGE of numbers, the EG command can be used to edit 
more than one access group at a time, and the EA command 
can be used to edit more than one user account at a time. 
When editing multiple groups or users, all fields in the 
visual data editor will initially appear "ghosted" (black on 
blue). Then, each field that you edit will "light up" to 
signify that its value will be applied to ALL groups or users 
that you specified. 

The EG and EA commands share two identical 
screens- "privilege flags" and "limits/ratios/flags." 
Following are descriptions of the options found here. If 
used as part of a larger "system," individual flags and fields 
may be described again throughout this manual. 



Access Groups and User Privileges 111 



Editing Limits/Ratios/Flags 



I. (Net 8 W8-93 PS 
Iser account nwtber ; 1 
Iser serial IDS : 1 



1; Jm Sell«k 



■tf Previous screw 



essaae base flags 
lie base f lags 
Ifile/Pfile fugs 
op verbosity fugs 

sxmrk aliases 
wnloads/day 
wnBybs/day 
Jplosds/day 



■ile credit ratio 1 
lytf credit ratio I 
■tie credit ratio 2 
'yte credit ratio 2 
tie credit ratio 3 
-l»te credit ratio 3 
hezi CatlerlW 
Uctionarv entries 



Ho action 



in/tall <! 
Hin$/day (8-999) 
Hins idle (8-959) 
Hessages/caU 
Feedbacks/call 
Editor lines 
Haxta watl <K8) 
Inactivity days 
Linss per signature 
Daily pfile ntnutw 
Send log to KserB 



Message base flags: Each message area subboard has a 
"flags required" field. In order to enter the subboard, each 
flag (a number to 31) specified in the "flags required" 
must also be present here in the message base flags. For 
example, if a subboard has flags required of 1-5,10, and a 
user has message base flags of 0-31 or even 1-5,10, he may 
enter the subboard. If the user has message base flags of 
0-9,11-31, or even 2-5,10, he may not enter the subboard. 
In the first case, he was missing the "10" flag. In the 
second case he was missing the "1" flag. 

File base flags: This field operates identically to "message 
base flags" but is used for subboards in the uploads area as 
opposed to the messages area. 



Gfile/pfile flags: This field operates identically to 
"message base flags" but is used in conjunction with the 
"flags required" fields of the gfiles, pfiles and news 
subdirectories. 



Log verbosity flags: From the CONFIG program's 
"logs..." screen, each system log is assigned a "flag" 
number from to 3 1 . In order for an event to be logged for 
a user, his "log verbosity flags" must include that log's flag. 
This allows you to "watch" the activity of certain users 
more closely. You may develop a scheme such as "logs 



112 CNet PRO 3 Bulletin Board Service 



with a flag of should be logged for all users" and "logs 
with a flag of 1 should be logged for less trusted users" and 
"logs with a flag of 2 should only be logged for users whose 
every move we are concerned about." In this example, you 
will want to give users log verbosity flags of "0" or "0-1 " or 
"0-2" depending on your needs to monitor their activity. 

Network aliases: When using netmail or UUCP mail 
frequently, it becomes a chore to remember and type large 
numbers of network addresses; one miss-keyed letter could 
send the letter to another user or to another location 
entirely. A network "alias" is an abbreviation for a 
complete network address. CNet will allow each user to 
use the EP command to enter as many network aliases as is 
specified by his "network aliases" field. When sending 
mail, the mail command will first check the recipient's 
name against the user's personal list of abbreviations. The 
editor is used to enter and edit network aliases. Each line 
consists of one alias and its abbreviation. For example, 
sending mail to Ken Pletzer at fido address 1:2410/215 is 
now as easy as using the "mail ken" command, and 
including the following when editing network aliases: 

ken Ken Pletzer® 1:2410/215.0 

Downloads/day: The actual number of files which the user 
may download from the system in one day (midnight to 
midnight). This number DOES include "free" files. Set 
this field to to give the user unlimited download files. 

Downbytes/day: The actual number of bytes which the 
user may download from the system in one day (midnight 
to midnight). This number DOES include "free" files. Set 
this field to to give the user unlimited download bytes. 

Uploads/day: The actual number of files that the user may 
upload in one day (midnight to midnight). This is included 
primarily for security reasons, to prevent users from 
overwhelming your storage capacity. Set this field to to 
give the user unlimited file uploading. 

Upbytes/day: The actual number of bytes that the user may 
upload in one day (midnight to midnight). This is included 
primarily for security reasons, to prevent users from 
overwhelming your storage capacity. Set this field to to 
give the user unlimited byte uploading. 



Access Groups and User Privileges 113 



File credit ratios (1-3): A file "credit ratio" determines 
how many "file credits" the user receives each time he 
uploads a file. Each file credit the user has is good for 
downloading one file. There are THREE file credit ratio 
fields here. The credit ratio that is used during a given 
upload is determined by the subboard's "upload file ratio#." 
When a subboard's "upload file ratio#" is set to a number 
between 1 and 3, it corresponds to one of the three of the 
user's file credit ratios. When a subboard's "upload file 
ratio#" is set to 0, the user receives NO file credits for 
uploading into that subboard. For more information, please 
read the "credit ratios" section in the subboard chapter. 

Byte credit ratios (1-3): This field works analogously to 
the "file credit ratio" fields for bytes instead of files. Please 
consult the discussion of file credit ratios above, 
substituting "byte" where you read "file." 

Use of caller ID (no action; copy to data#; must exist; 
must exist/copy; must match data#): This field's setting 
determines how a caller ID signal is handled. How yoS 
actually set this value will depend on the actual security 
needs of your systems. Note that caller ED is only available 
in certain areas, and requires a phone company service fee, 
and a modem capable of receiving caller ID signals. If "no 
action" is specified, the user is always allowed to logon 
normally. Note that caller ED matches (the caller ID signal 
and a list of account #'s whose data phone numbers match 
the caller ID signal) are always noted in the caller log. If 
"copy to data#" is specified, each time that user logs on, the 
phone number from which he is calling (the caller ED 
signal), if present, is copied into his "data phone#" field. If 
"must exist" is specified, a caller ED signal must be present 
in order for the user to log on. The actual value of that 
caller ID signal does not matter (but is still noted in the 
log). If "must exist/copy" is specified, a caller ID signal 
must be present to log on, and that caller ID signal is 
copied to the user's "data phone#" field. If "must match 
data#" is specified, the caller ID signal must be an exact 
match of what is already in the user's "data phone#" field in 
order for him to be able to log on. Caller ID is explained 
further in the "logon" chapter. 

Dictionary entries: The spelling checker built into the 



114 CNet PRO 3 Bulletin Board Service 



visual editor has the ability to "learn" custom words for 
each user. This field determines the actual number of 
words which may be kept in the user's custom dictionary 
file, A user may edit and delete words from his custom 
dictionary by using the EP command. Each line of a user's 
custom dictionary file corresponds to one "learned" word. 

Calls/day (0-999): The number of times that the user may 
log on to the system in one day (midnight to midnight). 
The special value of is recognized to allow an unlimited 
number of logons. 

M in/call (5-999): The number of minutes that the user may 
spend online each time that he calls. The special value of 
999 is recognized to allow an unlimited amount of time 
each call. "Time remaining" will show as 999 in the status 
window for as long as this user is online. 

Mins/day (0-999): The number of minutes that the user 
may spend on the BBS each day (midnight to midnight). 
This field is used together with "mins/cair to determine the 
actual number of minutes that the user may spend online 
during a given call. The special value of is recognized to 
allow unlimited number of minutes per day; time will be 
limited only be calls/day and min/call. 

Mins idle (0-999): A user is "idle" if the BBS is waiting 
for him to type at a command prompt. While text is being 
sent to the user, or the user is entering a command or text, 
he is not idle. This field determines the number of minutes 
for which the user may be idle before he is automatically 
disconnected from the BBS. During the last 30 seconds of 
"idle time," the BBS will "beep" (and the Amiga's screen 
will flash) once each 6 seconds, and the "time remaining" in 
the status window is replaced with the "idle timer." A 
value of is recognized to allow unlimited idle time. For 
security, it is NOT recommended that you allow unlimited 
idle time to ANY user. 

Messages/call: This field determines the actual total 
number of posts, responses, and mail messages that the user 
may enter during one call to the system. A value of is 
recognized here to allow an unlimited number of messages 
to be entered. This field is included primarily for security 
reasons to prevent your system from being overwhelmed 



Access Groups and User Privileges 115 



maliciously. 

Feedbacks/call: This field determines the actual number 
of feedbacks (private messages to the sysop) that the user 
may enter (the F command). There is no provision or need 
for unlimited feedbacks. A value of actually prohibits the 
user from sending ANY feedbacks. 

Editor lines: The default number of lines which the user 
may enter when writing posts, responses, feedback, and 
mail. While a user is in the editor, each line may occupy 
approximately 80 bytes of memory. Do NOT set this field 
toO. 

Maximum email (KB); Many users like to "keep" old 
mail long after they have read it. This field was designed 
to discourage that by limiting the size of a user's mailbox. 
Once a user's mailbox reaches the specified size (in 
kilobytes), mail senders are informed that the user's 
mailbox is "full." Your choice of values here depends on 
your system's space limitations. A value of is recognized 
to allow an unlimited mailbox size. 

Inactivity days: If you never deleted users from your 
BBS, you would find that some users call once or twice, 
and then never call back. Other users would go years 
without calling back. This field is used by 
auto-maintenance as a "cut-off point. If the user goes the 
number of days as specified by "inactivity days" without 
calling the BBS, he is automatically deleted during 
auto-maintenance. This process is sometimes called 
"weeding" the user base, or "purging" inactive users. A 
value of is recognized as making the user immortal on 
your BBS. 

Lines per signature: Each user may use the EP command 
to specify "signature files"— files that are automatically 
appended to the end of each message that he writes. 
Signature files are a convenience feature, preventing the 
user from having to enter a perhaps very lengthy footer for 
each message that he writes. Signature files can be abused, 
however, and can often be very annoying if TOO long and 
used TOO often. This field allows you to keep your users 
in check by specifying the actual number of editor lines 



116 CNet PRO 3 Bulletin Board Service 



which may be used when editing a signature file. A value 
of is recognized as allowing the default number of editor 
lines (as specified by the "editor lines" field above). 



Daily pfile minutes; The number of minutes that the user 
may spend using pfiles each day (midnight to midnight). 
This field was included because users sometimes abuse 
their use of games and other pfiles, and spend little or no 
time elsewhere on the BBS. Time using a pfile only counts 
against this limit if the "debit daily time" flag is set to "yes" 
in the pfile's attributes screen (the AT command from a 
pfiles area prompt). A value of is recognized to allow an 
unlimited number of minutes using pfiles each day. 

Send log to user#: For security reasons, the actions of 
specific users may be of some interest. If you set this field 
to a valid account number, a log of the user's activity will 
be sent to the mailbox as specified by the valid account 
number. The log in mail will appear identically is it does in 
the normal call log. 

Privilege flags 



8 (Net 

'sen account nwtber 

hit serUt 111 



nn/t VisualDataEditor 
Jse cursor Keys; EHfEP to sel*ct| 



*' Previous scrsefi 



lend EHal! 



1 



end bulk nail 
mi part? mil 
; end urgent nail 
orward nail 
Jse the Pfiles 
Jse the GfUes 
Jse thfr UserUst 
'onf stent? 

CI level 2 
elogon 

was bbsevents 
I us nn authors 
dopf orphans 



Ha Read private mp I 
Yes Kill/edit arty file : 
Yes Kill/edit oun files I 
Yes Skip file validation: 
Ho Write anonynous lv .' 
to Trite aitGipsus ; 
Yes Private wessages i 
Yes Conference control J 
Yes Infinite file credits 
Yes Infinite byte credit! 
Yes fiiitoCallfatk t? logon '. 
Yes Tiftdotk exenpt l 
Yos Add ow vote topics : 
No Rdd new vote choices; 
No Kill/Edit vote topk; 
No Edit handle ; 

No fdil mm, bdiv, »k! 
Ho Edit address, strtip; 



No Edit voice phortei i Ho 
Ho Cd it data phone! : Ho 



Y«s fit tow MHO banner : Yes 
Ho Use Terntink : Ltd 

Sub Monitor mother port: No 
tie fHsm sysep Ptogan ; Ho 
Sub Open screen logon ', lio 
Ho Open capture P logon J Ho 
Yes Send Fllo HetHall : Yes 
Yes Send UUCP NetHsit : Ha 



Ho FIDO FRoq and' Attach: Yes 
Ho Hold and (rash nail : Ho 



H« iietnail (est exmft : Yes 

Ho Costs are NetCredits! Ha 

No Receive BL rewards : Yes 

Ho flay pass the sysop ; ftef 
No 



All privilege flags are either "yes" or "no" unless otherwise 
indicated. 



System operator: This is the big one. Having this flag 
allows a user to do just about anything he wants to. He can 
always enter all subboards and pfiles, gfiles, and news 



Access Groups and User Privileges 117 



areas. He always has access equivalent to a subboard 
operator in those subboards. He has access to ALL MCI 
commands. Many privileges are not "automatic" however, 
and are assigned separately as described by other flags. 
When calling from REMOTE, the special command ID 
must be used to gain remote system operator access to the 
system. This is an added security precaution. Passwords 
may or may not be set for the ID command. Consult the 
"maintenance" chapter for more information. 

Send EMail: Whether or not the user may use the Mail 
command. 

Receive EMail: Whether or not other users may send mail 
to this user. 

Set mail expiration: Whether or not the prompt "# of days 
before auto-expiration" will appear when writing mail. 
Mail can be set to "expire" after a set number of days. 
Expired mail is automatically skipped and deleted when a 
user reads his mail. 

Send bulk mail: Whether or not the user may use the MM 
(multi-mail) command. Multi-mail allows someone to send 
one message to a group of users all at once. See the "mail" 
chapter for more information. 

Send party mail: Whether or not the "is this party mail" 
prompt will appear when a user enters bulk mail. Bulk 
mail that is designated as party mail causes all replies to the 
mail to be automatically distributed to all of the recipients 
of the original bulk mail. In order for party mail to be used, 
a "route file" must have been specified during the MM 
command. 

Send urgent mail: Whether or not the "urgent mail (shown 
at logon)" prompt will appear when a user enters mail or 
bulk mail. Mail that is marked as urgent mail is displayed 
immediately after a user successfully logs on. 

Forward mail: Whether or not the user may use the 
"FORward" command when reading mail. When you 
receive mail that is better read by some other user, or you 
wish to organize your mail between multiple sysop 



118 CNst PRO 3 Bulletin Board Service 



accounts, the FORward command is invaluable. 

Use the pfiles: Whether or not the user may use the "Pfiles" 
command to enter the pfiles area from the Main prompt. 

Use the gfiles: Whether or not the user may use the 
"Gfdes" command to enter the gfiles area from the Main 
prompt. 

Use the user list: Whether or not the user may use the "UL" 
command from the main prompt. The userlist feature is 
very handy when you need to locate users. The program 
uses a large amount of processor and hard drive time, 
however, and can drastically slow other ports. 

Conference: Whether or not the user may use the "Join" 
and "OLM" (On Line Message) commands. See the 
chapter "inter user communication" for more information. 
Without this flag, the user is also unable to RECEIVE 
OLM's. 

MCI level 1: Whether or not the user has access to use any 
of the most basic of MCI commands. Which commands are 
considered "level 1" are actually definable through a line in 
BBSTEXT. See the "editors and MCI" chapter for more 
information. 

MCI level 2: Whether or not the user has access to use any 
of the more advanced MCI commands. Which commands 
are considered "level 2" are actually definable through a 
line in BBSTEXT. See the "editors and MCI" chapter for 
more information. 

Relogon: Whether or not the user may use the "Relogon" 
command from the main prompt. It is sometimes 
convenient to logoff and then immediately "call back" 
without actually being disconnected. This is handy when 
more than one person is calling from one location. 
However, this feature may easily be abused, making the 
"calls/day" and "minutes/call" fields powerless. 

Bypass bbsevents: The CONFIG program's "event 
scheduler" contains several commands for limiting a user's 
access to the BBS based on baud rate and access group. 
Setting this flag to Yes specifically bypasses the 



Access Groups and User Privileges 119 



effectiveness of those events which may prevent logon, 
uploading, or downloading. See the "config" chapter for 
more information. This privilege flag will under no 
circumstances prevent an event from actually occurring 
(that is, auto-maintenance will always occur on schedule). 

Alias message authors (Yes, no, sub): Whether or not the 
"use/change alias" prompt will appear when posting or 
responding. Setting this flag to Yes or No will cause this 
flag to always or never appear, respectively. Setting this 
flag to "sub" will cause CNet to honor the "allow alias" flag 
from each subboard's configuration. Only sysops and 
subboard operators may use another actual user's name or 
handle as an alias. 

Adopt orphans: "Orphan" files are those found on the 
subboard storage device which are not currently listed for 
user access. This flag determines whether or not the user 
may use the "AG" command in a subboard to add "orphan" 
files to the list of files. This is primarily a sysop-only 
privilege. 

Read private messages: When set to Yes, all messages in 
all subboards marked as "private" will be readable. 

Kill/edit any file: When set to Yes, the user may use the 
Kill and EDit commands on all items in all subboards. 

Kill/edit own files: When set to Yes, the user may kill 
items that he posted and uploaded (regardless of their age 
and number of responses). When a user kills his own file, 
he loses the file and byte credits that he gained by 
uploading it. The user may also use the EDit command to 
change the text of his messages. 

Skip file validation: Newly uploaded files will require 
validation by a sysop or subboard operator only if the 
subboard flag "new file validation" is set to Yes, and this 
flag is set to "No." Unvalidated files may not be viewed or 
accessed by the users. 

Write anonymously (yes, no, sub): Whether or not the 
user may remain anonymous when posting, responding, or 
uploading. Setting this flag to Yes or No either gives or 



120 CNet PRO 3 Bulletin Board Service 



denies this privilege at all times on all subboards. Setting 
this flag to "sub" causes CNet to honor the subboard's 
"anonymous messages" flag. A subboard setting of "force," 
however, overrides a user setting of "no." 

Trace anonymous: When set to Yes, the handles of all 
anonymous authors on all subboards will be shown in 
parentheses following the "By: Anonymous" when 
messages are read. 

Private messages (yes, no, sub): Whether or not the 
"private message" prompt will appear when posting, 
responding, or uploading. Setting this flag to Yes or No 
either gives or denies this privilege at all times on all 
subboards. Setting this flag to "sub" causes CNet to honor 
the subboard's "private messages" flag. A subboard setting 
of "force," however, overrides a user setting of "no." 
Private messages are only effective if they are "addressed" 
to someone. 

Conference control: This flag gives a user power over all 
inter-user communications. If set to Yes, he may see all 
"hidden" users, he may OLM any port, he may force an 
inter-user chat by adding "!" to the end of the CC < port#> 
command, and he automatically has "control" of any join 
tele-conference room which he enters. See the "inter-user 
communications" chapter for more information. 

Infinite file credits: When set to Yes, CNet will not 
restrict a download based on the number of file credits that 
the user has. However, the user's file credits variable 
continues to be updated as normal, and may reach severly 
negative proportions if the user is a "leech." 

Infinite byte credits: When set to Yes, CNet will not 
restrict a download based on the number of byte credits that 
the user has. However, the user's byte credits variable 
continues to be updated as normal, and may become 
negative if the user does not upload. 

AutoCallBack ©Logon (no, yes, opt): Primarily designed 
to be a security feature, if set to Yes, this flag will cause 
CNet to call the user back EACH TIME that he logs on. (If 
set to "opt" he is first asked if he'd like to be called back). 
Be VERY CAREFUL about how and for whom you set this 



Access Groups and User Privileges 121 



flag. CNet will call LONG DISTANCE if necessary. The 
normal auto-call-back routines and "avalid" files are used 
to determine which phone numbers are considered local. 
See the "logon" chapter for more information. A bbs 
"event" is necessary to actually enable auto-call-back at 
logon. The event command "callback" should be given an 
argument of "1" during times you wish auto-call-back at 
logon to occur, and should be given an argument of "0" 
during times you do not wish auto-call-back at logon to 
occur. 

Timelock exempt: All subboards and pfiles/gfiles 
subdirectories have "minutes timelock" fields which 
determine the number of minutes that a user must be online 
before entering those areas. If this privilege flag is set to 
"yes," the timelocks will have no affect on the user, and he 
may enter any subboard as soon as he wishes. 

Add new vote topics: Whether or not the user may use the 
"Add" command from the vote command prompt. 

Add new vote choices: Whether or not the user may enter 
the choice of "0" when voting on a topic to add an entirely 
new choice. 

Kill/Edit vote topic: Whether or not the user may use the 
Kill and Edit commands from the vote command prompt. 

Edit handle: Whether or not the user may use the EU 
command to change his handle. This privilege should be 
withheld from most users for security reasons, but for your 
more trusted users, it makes the sy sop's job easier. 

Edit name, bday, sex: Whether or not the user may use the 
EU command to change his real name, his date of birth, or 
his gender. Most users will find that these items rarely 
change. 

Edit address, st/zip: Whether or not the user may use the 
EU command to change his address, city, state, and zip 
code. 

Edit voice phone#: Whether or not the user may use the 
EU command to change his voice phone number. If you 



1 22 CNet PRO 3 Bulletin Board Service 



voice validate callers, it may be unwise to allow users to 
change their own voice phone numbers. 

Edit data phone#: Whether or not the user may use the 
EU command to change his data phone number. If you 
validate users with caller-ID, it may unwise to allow users 
to change their own data phone numbers. 

Allow WHO banner: Whether or not the user may use the 
EP command to set a line of text (called his "who banner") 
to be seen below his name on the WHO command display. 

Use Termlink (no; ltd; fill): Termlink allows users on one 
port to dial out on another port. In "full" setting, users 
actually enter an unrestricted terminal mode on the call-out 
port. In "ltd" setting, users may choose from a list of BBSs 
to dial. Consult the "inter-user communication" chapter for 
more information. 

Monitor another port: Port-monitoring allows a user on 
one port to view what a user on another port is doing. 
Optionally, the monitoring user can actually type into the 
monitored port. This is a very powerful feature and should 
only be reserved for system operators. Consult the 
"inter-user communication" chapter for more information. 

Alarm sysop ©logon: If set to Yes, an audible warning 
will sound when the user logs on to the BBS. A BBSTEXT 
line is output, which by default contains an MCI DOS 
command similar to chat mode paging. This feature is 
designed audibly notify you when specific users of interest 
log on. 

Open screen ©logon: If set to Yes, the port's screen will 
automatically be opened (as if you had double clicked in 
the control panel) when this user logs on. The port screen 
will also automatically close once the user leaves the BBS. 
If the port screen was already open, this flag will have no 
effect. 

Open capture ©logon: If set to Yes, the port's capture 
buffer will automatically be opened (as if you had used the 
port's pull-down menu) when this user logs on. The 
capture buffer will also automatically close once the user 
leaves the BBS. If the capture buffer was already open, this 



Access Groups and User Privileges 1 23 



flag will have no effect. NOTE that the capture buffer is 
stored in RAM until the pull-down menu is used to save or 
clear the buffer. If the capture buffer is open for too long, 
you may run out of RAM. 

Send FIDO netmail: Whether or not the user may use the 
Mail command to send fido-net netmail. See the "mail" 
chapter for more information. 

Send UUCP netmail: Whether or not the user may use the 
Mail command to send UUCP mail. 

FIDO FReq and attach: Files may be requested and sent 
over the fido-net. This flag controls whether or not the user 
may use the FReq command to post file-requests to fido-net 
BBSs. To process file requests, CNet creates or appends 
"REQ" files in the fido-net outbound directory. This flag 
also controls whether or not the "request, attach" prompt 
will appear when entering fido-net netmail. 

Hold and Crash mail: Whether or not the "crash, hold, 
normal" prompt will be given when entering fido-net 
netmail. The selected type is sometimes called the "flavor" 
of the netmail message, and determines the timing of its 
distribution across the network. 

NetMail cost exempt: The fido-net nodelists contain a 
cost variable for each BBS in the nodelist. This number 
may reflect the actual "cost" of sending netmail to that 
address in your country's lowest currency (pennies in the 
USA and Canada). Unless you set them when you compile 
the nodelists, these cost values usually default to 0. After 
sending netmail, CNet will subtract this amount from the 
user's accounting balance, unless the "cost exempt" flag is 
set. Note that nodelist compilation is NOT performed 
internally by CNet. You will need to use a separate 
program such as "TrapList" for that purpose. 

Costs are net credits: Instead of using the nodelist costs as 
"money" and subtracting them from the user's accounting 
balance, you may choose to use a system of "credits." 
Every user has a "network credits" field in his account. If 
you set the "costs are net credits" privilege flag to "yes," 
CNet will check and deduct from the user's "network 



1 24 CNet PRO 3 Bulletin Board Service 



credits" field. The only way network credits are ADDED 
to this field from the BBS is by sysop use of the EA (edit 
account) command. 

Receive DL rewards: A subboard may be configured such 
that "rewards" are given to the uploaders of files each time 
someone downloads their files. These rewards are based on 
percentages and other configuration variables. Consult the 
subboard chapter for more information. If a reward is due, 
setting the "receive DL rewards" flag to No will prevent the 
user from receiving that reward. 

May page the sysop (no, yes, def): When a user pages 
you using the "Chat" command, he is either told that you 
are unavailable, or he is told that you are being paged. In 
the latter case, a BBSTEXT line is read that by default 
contains a DOS command to produce a sound on the 
Amiga. Some users you might WANT to know are paging 
you, and some you might NOT want to know are paging 
you. By setting this privilege flag to either "yes" or "no," 
you can select that the user is ALWAYS able to page you, 
or NEVER able to page you. Setting this privilege flag to 
"def will allow the user to page you if the control panel's 
pull down menu option "sysop is in" is checkmarked. Note 
that the control panel may have different "sysop is in" 
settings for different ports. 

Special Sysop EA functions 

As was mentioned earlier, the EA command may be used to 
edit a specific user's account (or a range of user accounts). 
The fields found in two screens (privilege flags and 
limits/ratios/flags) are identical to those found in two 
screens of the EG command, which were described above. 
Much of the other information editable from the EA 
command screens is nothing more than what the user may 
edit himself using the EU, EP, and ET commands, so will 
not be considered in depth here. However, the EA 
command allows you to edit several other user variables 
which do not appear anywhere else. They will be described 
here: 

Sysop comment: A line of text for your eyes only. This 
comment will be displayed at the bottom of the port status 
window when the status window is open. Also, while 



Access Groups and User Privileges 1 25 



looking at the control panel, a "+" will be displayed 
alongside a user's handle if there is a sysop comment. The 
"Userlnfo" button can be used to quickly view the 
comment. 

Expiration date: A date on which the user's access will 
automatically be changed to the "expiration access" group. 
When disabled, the date will read 00-Jan-OO. 

Expiration access: The access group to which the user 
will be assigned once the expiration date has been reached. 
Useful in cases where the user is on "probation" for a 
period of time, or if the user has paid for special access for 
a specific time period. 

Phone verification (unv, acbl, acb, cid, cidl, sys): This 
field allows you to keep track of how a user was validated, 
or VERIFIED as leaving correct phone numbers. CNet will 
automatically update this field unless it is manually set to 
"sys," which should be used to indicate that a sysop has 
manually verified the user. "Unv" indicates that the user 
has not yet been validated in any of the following ways. 
"Acb" indicates that the BBS successfully performed 
auto-call-back validation on the data phone number during 
the user's last call. "Acbl" indicates that the BBS 
successfully performed auto- call-back validate on the data 
phone number at one time, but not on the last call. "Cid" 
indicates that the user's data phone number matched the 
caller-ID signal on his last call. "Cidl" indicates that the 
user's data phone number matched the caller-ID signal at 
one time, but not on his last call. 

Time today (l/10s): The actual amount of time that the 
user spent on the system during the last day (midnight to 
midnight), not including the current call if the user is 
currently online. This value is given in TENTHS of a 
minute. On a new day, this number is not reset to until 
the user actually calls. That is, it reflects the amount of 
time spent on the system during the "last call date." 

Calls today: The number of calls the user has made to the 
system during the last day (midnight to midnight), not 
including the current call if the user is currently online. 



1 26 CNet PRO 3 Bulletin Board Service 



Total calls: The number of calls that the user has made to 
the system in total. 

Time credits (l/10s): This field provides a way to 
"temporarily" give the user more time for his next call(s). 
A user's maximum time per call will be computed as his 
"mins/call" setting PLUS the time credits setting. Note that 
time credits are given in TENTHS of minutes. Time credits 
are "used up" as the user spends time online. For example, 
if the user has a normal 40 min/call, and 100 time credits 
(10 minutes), he will have 50 minutes maximum the next 
call. If he only spends 4 minutes on line, his time credits 
will be reduced to 60 (6 minutes), and he will have a 
maximum of 46 minutes the next call. Time credits are 
only given from the EA command. 

Network credits: This field contains the number of 
netmail "credits" the user has. This field is only considered 
when the user has the privilege flag "costs are net credits" 
set to Yes. See the discussion of that privilege flag. 
Network credits can only be given from the EA command. 

Public messages/private messages: The actual number of 
posts and responses (public) and mail and feedback 
(private) messages that the user has entered. 

Balance: This field is used in conjunction with the 
accounting system. The units are CENTS. See the section 
concerning the accounting system in the 
CONFIGURATION chapter for more information. 

Pfile points: This field is here for sysop editing, but is not 
directly used by CNet. The AREXX command "addpoints" 
can be used within AREXX games to add and subtract from 
this value. This field is here primarily to give AREXX 
game programmers a user variable to use to track game 
advancement, etc. 



User Preferences 1 27 



CHAPTER 8 - User preferences 

User configurable variables and preferences are split into 
three categories: user profile, terminal settings, and BBS 
preferences. There is a user command corresponding to 
each one-"EU" (edit user profile), "ET" (edit terminal 
settings), and "EP" (edit preferences). These commands 
are available at all command prompts. 

The user profile 

The "EU" command is used to edit the basic user profile 
data-name, handle, address, city, state, zip, voiced, data#, 
birthday, gender, and organization. All but the 
"organization" is self explanatory. 

The "organization" is text that will appear below the user's 
name on posts and responses that he writes— it "identifies" 
him with a group. Once written, a message's organization 
line does not change-that is, changing the organization 
field in your user records does not affect existing messages. 

There are five different privilege flags to control which of 
these data that a user may edit himself (without sysop 
intervention). They are "handle," "name, birthday, sex," 
"address st/zip," "voice phone #," and "data phone #." 

If the system's user data file pointers (used internally by 
CNet to locate specific user files quickly) become corrupt 
or invalid, CNet will not allow use of the "EU" command. 
In this case, the sysop must use the maintenance pfile 
"pointers" to re-create the pointers. 

The terminal preferences 

The "ET" command is used to edit the user data fields 
which affect how CNet "talks" to the user's terminal 
program. CNet needs to know the size of the terminal's 
display, and which type of control-codes it understands. 
The fields here are: 

Computer type: Chosen from the list in the 
"CNET:BBSMENU" file, menu number 30. Once users 
have chosen computer types, you should not alter the order 
of the computer types as given in menu number 30. It is 
OK to add new computer types at any time to the END of 



1 28 CNet PRO 3 Bulletin Board Service 



the list (for a total of up to 32 choices), 

Graphics set: ASCII, Commodore C/G, IBM, Amiga Int'l, 
or Amiga SkyPix. This information tells CNet how to 
"talk" to the user's terminal— which codes to send to 
produce certain characters. For example: Code number 225 
could be any of several different characters depending on 
the graphics set. ASCII is the simplest of the graphics sets, 
containing only the letters, digits, and basic symbols, using 
only character codes 0-127. IBM and Amiga International 
use the same ASCII codes 0-127, but offer support of the 
graphic or multi-lingual "extended" character codes 
128-255 as well. Commodore C/G also uses all character 
codes 0-255, but does not use the same ASCII codes for 
letters, numbers, or basic symbols. "SkyPix" is usually an 
IBM character set, with the added ability to display simple 
raster graphics like circles, lines, patterns, etc. SkyPix has 
limited usefulness and compatibility because it is an 
exclusive Amiga protocol. 

ANSI support: None, Simple, or Full. ANSI stands for 
"American National Standards Institute." ANSI as an 
organization is responsible for the determination of 
standards for a wide variety of industries and scientific 
processes. The word "ANSI" in the computer BBS world 
has become synonymous with the ANSI documents 
concerning terminal emulation-which code sequences to 
send to change colors, move the cursor, etc. It is 
appropriate to speak of "ANSI terminal emulation." The 
ANSI terminal specification actually consists of an 
extended "VT100" command set. If your terminal program 
is "dumb" and does not support ANSI at all, select "none." 
If your terminal program supports VT100 or limited ANSI 
(colors and cursor movement), select "simple." Only select 
"full" if your terminal is capable of understanding the ANSI 
command sequences to insert and delete characters from a 
line, and to insert and delete lines from the screen. Many 
terminal programs for the PC compatibles only support 
"simple" ANSI. Use the visual editor to determine if your 
terminal program supports simple or full ANSI. If 
characters insert and delete correctly in "full ANSI" mode, 
your terminal supports full ANSI. New users should be 
able to determine their correct ANSI support level by 
answering several questions posed in the New User 
questionaire. 



User Preferences 1 29 



Line feeds: Yes or No. All terminals use the carriage 
return character to move the cursor to the beginning of the 
line. Most terminals require an extra character (a line feed 
character) to advance the cursor to the NEXT line. If your 
terminal requires line feeds, and you set this field to "no," 
text will appear to display "all on one line." 

Screen width: the number of characters that fit across 
your screen from left to right. Most terminals are designed 
for 80 characters. This field is provided for compatibility 
with other possible screen sizes, such as 120, 40 or even 22 
(any VIC-20 users still out there??). CNet uses this field 
when determining when to wrap text. When a user follows 
directions in the editor, that is to press ENTER only when 
beginning new paragraphs, CNet is able to reformat 
(re-flow) text to match a screen of any width. 

Screen height: the number of characters that fit across 
your screen from top to bottom. Most terminals are 
designed for 24 characters. Some terminals, however, offer 
more. CNet uses this field in conjunction with the "more?" 
mode, to determine when to pause screen output. It is also 
used by the visual editor to determine the number of rows 
to offer. 

ANSI tabs: Yes or No. The ANSI standard for terminal 
tabbing is default tab stop at each 8th column. When an 
ANSI terminal receives a TAB, it advances to the next tab 
stop (1st, 9th, 17th, etc.) column. If your terminal supports 
this, CNet will send the actual tab character, assuming your 
terminal will move the cursor as expected. Without this 
ability, CNet must send individual "space" characters to 
achieve the proper alignment. This option is provided 
simply as a means of achieving better efficiency, although 
with the advent of high speed modems, it is not as needed 
as in the past. 

ANSI color: Yes or No. Although a terminal may be 
capable of supporting most ANSI, it may simply be 
incapable of interpreting color change commands. If this is 
the case, or if you are using a monochrome monitor, or if 
you simply prefer a black and white display, set this option 
to "no." 



130 CNet PRO 3 Bulletin Board Service 



The BBS preferences 

The "EP" command is used to edit your BBS preferences. 
CNet offers the user a great deal of power and configurable 
features. Many of them are controlled from the options 
found here. They are as follows: 

Help level: Novice, Intermediate, Expert, Super-user. This 
field should be set to reflect your familiarity with the BBS 
and CNet BBSs in general. Novices receive "help-lines" at 
command prompts, listing the most commonly used 
commands. Intermediate (and more advanced) users do not 
receive these help lines. The "entry" and "exit" files for 
subboards are not displayed to super-users. There is 
currently no distinction made between intermediate and 
expert users. 

More? mode: Yes/No. Set this option to Yes to receive a 
prompt "more (y/n/c)?" each time your screen fills up. This 
feature makes use of the "screen height" field as set from 
the ET command. From the "more?" prompt, press N to 
attempt to abort the text. Press C for "continuous" printing 
(no additional "more?" prompts will appear until the next 
command prompt). Press any other key to receive the next 
page of text. 

Message reading: Continuous, Prompts, ANSI paging, 
ANSI scrolling. This option controls the way in which 
subboard posts and mail messages will be read. 
"Continuous" means to read the item's responses 
immediately after the original post without command 
prompts in between. CNet will still honor the "more?" 
mode, however. A "respond or pass" prompt will appear 
only after the last response has been read. Setting this 
option to "Prompts" will cause CNet to give the "respond or 
pass" prompt after EACH response. When set to 
"continuous," it is still possible to get the "respond or pass" 
prompt to appear before the last response. Use control-C, 
or hit "N" at the "more?" prompt. The "ANSI paging" 
option must be used in conjunction with the "more?" mode. 
When enabled, CNet will retain the "header" of each 
message on the screen, as pages of the messages are 
displayed underneath, separated by "more?" prompts. 
"ANSI scrolling" may or may not be used in conjunction 
with the "more?" mode. "ANSI scrolling" will again retain 



User Preferences 131 



the "header" of each message on the screen, but this time, 
text appears to "scroll" underneath the header, while the 
header remains stationary. Enabling the "more?" mode 
here is a good idea for high speed modems or when using 
local console mode. 

File xfer protocol: This option provides a way to set the 
default file transfer protocol without actually transferring 
anything. Normally, CNet prompts to change the default 
protocol each time a file transfer is about to begin. 

Time zone: -23 to 23. CNet maintains a "system" time, 
but displays all dates and times to users relative to their 
home time zones. For example, if a message was posted at 
5:15pm on a BBS in Michigan, all local users (and users in 
the Eastern Time Zone) will see the message as being 
posted at 5:15pm. By setting the "time zone" to -5, users in 
Hawaii, however, will see the message as being posted at 
12:15pm. The -23 to 23 range of values insures that even 
BBSs and users in the middle of the Pacific Ocean, 
separated only by the International Date Line, will still be 
able to use this feature. One POSSIBLE option is to keep 
your system on UCT (Universal Coordinated Time) or 
GMT (Greenwich Mean Time), and have ALL users (even 
local users) set their time zones. 

Time format: 12 or 24 hours. When set to 12 hours, CNet 
uses "a" and "p" to distinguish times in the AM from those 
in the PM hours. This is the most "user friendly" and 
intuitive choice for most North Americans. When set to 24 
hours, CNet uses "military" or 24 hour time, with "0" 
meaning 12 midnight, "12" meaning 12 noon, and "23" 
meaning 1 1 PM. 

Mail box/forward: You may use this option to "close" 
your mailbox. Only system operators may send mail to 
closed mailboxes. You may also use this option to set a 
"forwarding address" for your mail. Instead of receiving 
mail to your mailbox, you may instead choose to 
automatically forward all incoming mail to another 
location. Currently, mail may only be forward to another 
"local" user's mailbox (that is, not to a network address). 

Text translation: If you are using multiple languages or 



1 32 CNet PRO 3 Bulletin Board Service 



text sets (see the modifications chapter), this option may be 
used to change the default text set. This option allows you 
to, for example, switch from the English to French 
languages, or from "CNet style" to "IBM style" user 
interfaces. 

Auto hide & muffle: (Off; Your own port; Other ports; 
All ports). This feature allows you to automatically invoke 
the effects of the "HIDE" command after you logon (see the 
inter-user communication chapter for details). By hiding 
from your own port, you prevent yourself from seeing 
"echoes" of everything you type into the join 
teleconference. By hiding from other ports, you prevent 
other users from knowing that you are on-line, or have even 
logged on. By hiding from all ports, you get the effects of 
both. 

Default editor: CNet comes with two "internal" default 
editor choices, the line editor and the visual editor. 
Additional "external" editors may be added (see the 
CONFIG chapter). This option allows users to select which 
editor will be used for writing messages. In the case of 
CNet's two internal editors, commands exist in each to 
allow the user to switch between them. 

Message bundling: The user fields set here are used to 
control the operation of the subboard "Yank" command 
(see the subboard chapter for details). You must select a 
packer or archiver (like ARC, ZOO, or LHA). This will be 
the program used to pack the Yank or QWK files. You 
may select the packer to be "TXT," which is not an archiver 
or packer at all. Using "TXT" tells CNet NOT to do any 
packing. The file will be readable and editable as soon as it 
is do^nloaded-no unpacking will be necessary. NOTE 
that because QWK packets actually consist of multiple 
files, QWK message bundling REQUIRES a packer -QWK 
can not function with a setting of "TXT" here. The other 
field set here is an "end of line" sequence. This setting 
affects only Yank files-it has no effect on QWK packets, 
which follow a predetermined structure. The "end of line" 
sequence may be chosen as Carriage Return (CR), Line 
Feeds (LF) or both (CR/LF). Amiga'users will want to set 
this to LF. Commodore 64/128 users will want to set this 
to CR. Most other users will want to set this to CR/LF. 



User Preferences 1 33 



Your UUCP ID: This is the (up to) eight character name 
that you will use on the UUCP network(s). If the BBS is 
not connected to a UUCP network, this field is of little 
consequence. Most people use their initials, their first 
initial and last name, or their first name and last initial. 
Rarely do people use something unrelated to their real 
names. Before you are able to send mail or post in a UUCP 
network subboard, your UUCP ID must be set. 

Edit signatures: (Default; Local mail/feedback; UUCP 
messages; FIDO messages/handles; FIDO messages/real 
names; Other messages/handles; Other messages/real 
names; Upload descriptions/handles; Upload 
descriptions/real names). Separate, different signature files 
may be created for these nine purposes. Signature files are 
automatically added to the end of messages as they are 
saved. Using a subboard flag, sysops may disable the use 
of signature files in specific subboards. If one of the eight 
specific signature files has not been written, CNet will 
attempt to use the "default" signature file. To remove a 
signature file, edit the signature file, delete all of the lines, 
and then Save the empty text. 

Edit "who" banner: Your "who banner" appears 
underneath your name and other information in the WHO 
command display. This option allows you to change this 
message. New users' "who banners" are copied from a 
BBSTEXT line which by default reads "Be nice to me, I'm 
new. :)" 

Edit MACROS: (Control-E; Control-F; Logon). A 
"macro" is an abbreviation or a symbol that is "expanded" 
to mean something more complex. Using CNet's MACRO 
feature, you can "program" your control-E and control-F 
keys to ouput any text you wish. They will then work 
similarly to the way the function keys do in local mode. 
You can set them to commonly used command sequences, 
or to commonly used phrases. The special character ' 
(backwards apostrophe) is recognized here to mean a 
carriage return (the ENTER key). The "logon" macro is 
text that will be added to your input buffer automatically 
when you first logon. If there is a command or series of 
commands that you execute each time you logon, the logon 
macro can be used to save you some time. 



1 34 CNet PRO 3 Bulletin Board Service 



Edit user dictionary: This feature is used in conjunction 
with the visual editor's spelling checker (see the editors 
chapter). When the Learn command is used, CNet attempts 
to place the new word into this file. Occasionally you may 
wish to view or manually edit this dictionary file. NOTE 
that the spelling checker requires that you place only one 
word per line. The number of words (lines) that may be 
added to this file is limited by each user's account 
"dictionary entries" field. 

Edit network aliases: This feature was added to make use 
of netmail faster and easier. Netmail addresses are long and 
sometimes difficult to keep straight. For example, the way 
to send mail to Ken Pletzer via FidoNet is "mail ken 
pletzer@l:2410/215.0." The network aliases feature allows 
you to give "aliases" or abbreviations for the mailboxes you 
send mail to the most often. The mailbox may be either a 
UUCP or FidoNet address. Use one editor line per 
abbreviation. The format is: 

< alias> < address> 

for example: 

ken KenPletzer@l:255/2410.0 

future future@engin.umich.edu 

Now, sending mail to ken is as easy as "mail ken." Each 
user is limited to the number of aliases specified by their 
user account variable "network aliases." 



Subboards 1 35 



CHAPTER 9 - The Subboards 

CNet uses the term "subboard" to refer to an area where 
users can post messages, read messages, upload files, and 
download files. Depending on its configuration, any CNet 
subboard can contain just messages, just files, or a 
combination of both. Other BBSs sometimes refer to 
subboards as "areas," "bases", "bins", or "sigs". 

CNet organizes its subboards into two logical groups-the 
uploads base, and the message base. To enter the uploads 
base from the Main prompt, use the "Uploads" command. 
To enter the message base from the main prompt, use the 
"Base" command. Other than the logical distinction 
between these two divisions, CNet treats any subboard like 
any other subboard. The commands available to users in an 
uploads base subboard are identical to those available to 
him in a message base subboard. However, it is possible to 
restrict access to any of uploading, downloading, posting, 
or responding in any subboard on a per-subboard basis. 
The choice is yours as to whether or not you wish to allow 
your users to upload in any or all of your message base 
subboards, and whether or not you wish to allow your users 
to post messages in any or all of your upload base 
subboards. 

Creating subboards 

To create a subboard, use the "AL" command from the 
Uploads base or Message base prompt. You can also use 
this command from a subdirectory prompt. Subdirectories 
and subboard tree structure will be explained in another 
section. 

The first question will be "use direct disk access?" Direct 
disk access subboards will be explained in another section. 
Press RETURN for now. 

The next question will be "copy from physical subboard#." 
If you have already added and configured a subboard, and 
wish to copy its configuration to the subboard you are 
adding now, you may enter the existing subboard 's 
physical subboard number at this prompt. Physical 
subboard numbers are displayed on the subboard edit (EL) 
screens. If this if your first subboard, or you do not wish to 



1 36 CNet PRO 3 Bulletin Board Service 



copy the configuration from another subboard, just press 
RETURN. 

The next question will be "Is this a subdirectory?" 
Subdirectories are pathways to additional lists of subboards. 
Subdirectories are explained further in another section. If 
you want a subboard which will contain actual posts and/or 
files, answer no or just press RETURN at this prompt. 

The next question will be "Title to appear on list?" You can 
enter anything you wish here, or just press RETURN to 
abort the AL procedure. The title that you enter here will 
be the actual title that the user sees when he lists the 
available subboards. It does not affect actual filenames or 
directory names. 

The next question will be "name used on disk (unique)." 
Each subboard must have associated with it a UNIQUE 
name, suitable to be used as an AmigaDOS filename, and 
DIFFERENT from all of your other subboards. CNet will 
use this name when creating storage directories on your 
hard drive for the subboard. Subdirectories and direct disk 
access subboards must also be given unique names to allow 
for the creation of a data directory to store various subboard 
information. In the case of a fidonet subboard, the "name 
used on disk" must match the echo's "tag" name as given 
by your fidonet coordinator. 

The next question will be "path to subboard data 
structures." This path will default to BASEO: or 
UDBASEO: (depending on whether you are in the Message 
base or Uploads base, respectively), followed by the unique 
subboard name you previously selected. For most 
purposes, this is OK. By default, all subboard data (text 
and headers) are stored in BASEO: and UDBASEO:. Do not 
alter this scheme unless you are an advanced user and really 
know what you are doing. 

The next question will be "enter the partition range" with a 
default of 0. If this subboard will not be used to store files, 
or will be used to access files from a specific path (as in the 
case of a CD Rom), or you only have one hard drive 
partition for the BBS, just press RETURN. Otherwise, you 
may select a range of hard drive partitions over which this 
subboard's files will be stored. You should have created 



Subboards 137 



and decided upon these partitions during CNet's initial 
configuration. Although partition defaults to BASEO: or 
UDBASEO:, partition is actually COMPLETELY 
DEFINABLE for each subboard. You will be asked for the 
path to partition later. For partitions 1 and greater, CNet 
assembles the path names to these partitions by using the 
prefixes "BASE" or "UDBASE" (depending on whether 
you are in the Message or Uploads base, respectively), 
followed by the partition number, and then the unique 
subboard name (for example, UDBASE1 :SUBNAME/). 
See the section paths and partition if you have any doubts 
about what this prompt is for. 

The final question will be "partitionO/CDROM/netpath." If 
this subboard will not be used to store files and is not a 
UUCP subboard, press RETURN. Otherwise, what you 
enter here will become the primary path to this subboard's 
files (sometimes referred to by CNet as "partition 0"). By 
default, this is BASEO: or UDBASEO: followed by the 
subboard's unique name. However, if this subboard will be 
used to access a CD ROM, now is the time to specify the 
path to the CD ROM directory (for example, 
CDO:ibm/games/action/). If this subboard will be used to 
store UUCP messages, now is the time to specify the 
UUCP directory (for example, UUNEWS:alt/movies/sttng/ 
for a UUCP subboard entitled "alt.movies.sttng"). If this 
subboard is a direct disk access subboard, now is the time 
to enter that path (for example, RAM: or DFO:). 

If CNet has no problem finding or creating the directories 
you have just specified, you will then find yourself in the 
visual data editor (VDE) looking at the subboard 
configuration (EL) screen. For most cases, a default 
configuration is acceptable. If you are familiar with 
browsing this screen, or have already read the section to 
come "viewing/editing subboard configuration," now is a 
convenient time to make final configuration changes to 
your new subboard. If everything looks OK, or you are not 
yet familiar with the BBS, just press RETURN here to exit 
the VDE. 

Paths and partitions 

In the simplest of CNet configurations, all Message bases 
are stored in BASEO: and all Upload bases are stored in 



138 CNet PRO 3 Bulletin Board Service 



UDBASEO:. Within BASEO: and UDBASEO: can be found 
subdirectories, one matching each of the unique subboard 
names that you used when you created the subboards. 
Within each of those subdirectories appear all files 
uploaded to that subboard, and another subdirectory entitled 
"data." The data subdirectory contains the item header and 
other index information. This configuration is the default, 
and would be obtained by simply pressing RETURN when 
prompted for data path, partitions, and partition path 
when creating subboards. 

The first way to customize this setup is to change the 
default "partition 0/CDROM/netpath." You may have 
already done this if you have set up a CD ROM or direct 
disk access subboard. By default, this path is set the same 
as the "path to data files." However, by changing this field, 
you can cause the subboard to look at any path you choose 
to find files. Here's an example, involving three subboards, 
each storing uploaded files onto different partitions: 

Title: Games and more 

Unique name: games 
Data path: UDBASEO:games/ 
Partitions: 

PartO path: UDBASEO:games/ 
All default here 



Title: 


Bad games 


Unique name: 


; bad 


Datapath: 


UDBASEO:bad/ 


Partitions: 





PartO path: 


DH2:bad/ 


Customized to DH2: 





Title: Adventure games 

Unique name: adventure 
Datapath: UDBASBO:adventure/ 
Partitions: 
PartO path: DH3:adventure/ 
Customized to DH3: 

The above examples show some of the power of CNet's file 
subboard configuration— but there's more. The above 
examples demonstrated subboards which stored all of a 
subboard's files on one partition. This works well for most 



Subboards 139 



configurations. However, for the advanced system 
operator, CNet has the ability to SPLIT a subboard's files 
between more than one partition. This is where the 
"partitions" setting can be used. 

Valid partition numbers are through 31. Any 
combination of these may be used. When CNet needs to 
know what "partition 0" is, it refers to the 
"partO/CDROM/net path" as configured in the subboard. 
This was shown in the examples above. When CNet needs 
to know what partition 1 , partition 2, and up to partition 31 
are, it uses the prefix "BASE" or "UDBASE" (depending 
on whether you are in the Message or Uploads base, 
respectively), followed by the partition number, and then 
the subboard's unique name. You must use ASSIGN 
commands in your startup-sequence files to make these 
assignments to your physical hard drive partitions. You can 
have these logical partitions assigned to your physical hard 
drive partitions in any way that you want. However, it is 
recommended that you follow a logical order to make it 
easy for you to remember: 



UDBASEO: 


is 


DH0:udbase/ 


UDBASE1: 


is 


DHkudbase/ 


UDBASE2: 


is 
etc. 


DH2:udbase/ 



For example, if you have a subboard configured as follows: 

Title: Games and more 

Unique name: games 

Data path: UDBASE0:games/ 

Partitions: 0-2,4 

PartO path: UDBASE0:games/ 

CNet would look in the directories UDBASE0:games/, 
UDBASEl:games/, UDBASE2:games, and 

UDBASE4:games/ for the subboard's files. As files are 
uploaded, CNet will place them into the hard drive 
partition(s) with the most amount of free space. Using the 
Adopt Orphans (AO) command, you can also directly add 
files from any one or a combination of these partitions. 
Users will see the files listed together. The fact that these 
files are spread across multiple hard drive partitions will 
not be known to them. 



1 40 CNst PRO 3 Bulletin Board Service 



Memory and buffers 

When a user enters a subboard, memory is allocated for that 
subboard to hold its item headers. The amount of memory 
allocated is dependent upon the maximum number of items 
that the subboard is configured to support. A moderately 
sized subboard will hold 150 items. If you increase this 
value (as described in the next section), you should be 
considering the memory you are asking for. A subboard 
configured to 1500 items will use ten times as much 
memory as one configured for 150 items. The number of 
responses that items have does not require additional 
memory— a subboard may have 20,000 responses and 
experience no memory problems. As other users enter the 
same subboard, additional memory is not allocated-they 
will all "share" the data structures already in memory. If 
there is not enough memory to enter a subboard, the user 
will be given the message that the subboard is "temporarily 
locked." 

If memory permits, you may edit the subboard's 
configuration to specify that part or all of a subboard's data 
structures remain allocated and loaded in RAM. If you set 
the "keep buffers" to "headers", the short "_headers3" file 
will be retained in memory once all users have left the 
subboard. The _headers3 file is the one that is immediately 
loaded when a user enters a subboard. It contains 
information to determine which messages are new, and how 
to sort them. If this file is already in memory, efficiency of 
moving between subboards will be greatly enhanced. This 
file is also used by the global file duplicate checking 
routines. If at all possible, to prevent delays in global file 
duplicate checking, you should attempt to keep the headers 
in memory at least in your subboards which contain files. 

You may also set the "keep buffers" to "headers+items" 
which will cause CNet to retain both the _headers3 file 
AND the much larger _items3 file in memory. There is 
little need to do this, as CNet loads the _items3 file in 
sections, and only as-needed. However, if you have the 
RAM to spare, you may try keeping these in memory if you 
have a couple of subboards which receive a large amount of 
traffic. 



Subboards 141 



Viewing/editing a subboard's configuration 

The final step of creating a subboard brought you to a 
screen where you could move around using the cursor keys 
and edit various subboard configuration information. You 
can return to this screen at any time by using the "EL" 
command while at the subboard's prompt. From this 
screen, you can edit several of the parameters and paths that 
you originally specified when creating the subboard. If you 
edit the paths, CNet will not be able to MOVE data 
between partitions. It would be wise to check the 
configuration from the Shell after making path changes to a 
subboard. Other options available from this screen include: 



i: Jut set lock 



He<MH»M9J3 2!6?p 



inet/j visuaivacctai. 
Use cursor 'm'< 



(Ubboart title I Conversations 

'ith is data <h> : base8llalk/ 

'«h to f»H8/C6/wt; bases: Utk/ 
irtfiti/distribution I 

'nljus imam ', talk 

irfjUons ! 8 

Mi wlojdjfcte > 8-23 

IRCs transformable ; 8-23 
fr.ansforM to , ! 

im'mm ittns : I SB 



charges 1 8 

nbad file 'charge* ! 8 

pt?-jrfc after ami B 

atnt inactive davsi 8 

st mmm m\mi 5 



Km buffers ; n» 
Network affUUtion : Hone 
Stan filter (-— ) : 
yptoad bpt Hliai : 1 
Upload bytt charitt ! i 
Onload bvte clwgel : 8 

Edit access wrs ^ 
Edit other ftps » 
Edit subcwrmps » 



Origin/distribution: For Network subboards. In a fidonet 
subboard text entered here will override the default "* 
Origin" line as configured for the network. In a UUCP 
subboard text entered here will be used as the 
"Distribution:" line in outbound messages. 

ARCs uploadable: The CONFIG program contains a list 
of archiver/packer programs. Each of these archive types 
has its own number, beginning with 0. CNet recognizes the 
archive type (if any) of an upload file by reading the 3 letter 
filename suffix, such as .LHA, .DMS, or .ZIP. The ARCs 
uploadable field determines which of the listed suffixes 
may be uploaded. The restriction is limited to the suffixes 
specifically listed, files uploaded with a suffix NOT in the 



1 42 CNet PRO 3 Bulletin Board Service 



list of archiver/packer programs will NOT be rejected. 

ARCs transformable: Again using the CONFIG's 
archiver/packer program numbering, this field determines 
which file types will be transformed using the 
transformation scripts. Transformation is completely 
described in another section. 

Transform to: CNet has the ability to "tranform" archives 
of one type to another. Specify here the number of the 
archive type to which to attempt to transform uploads. 
CNet requires a "script" file for every possible 
transformation procedure, as well as the archiver programs 
themselves, for this feature to work properly. 
Transformation is completely described in another section. 

Network affiliation: For local (non network) subboards, 
keep this field at its default of "none." Otherwise, set this 
field to reflect either UUCP, or one of the fidonet domains 
that you have configured using the CONFIG program. 

Scan filler: This field can be set to contain up to 3 
characters to be displayed alongside of the subboard title 
when users List the available subboards. Subdirectories are 
by default set to have a scan filler of "DIR." 

Upload file ratio number: Set this number to a value of 1, 
2, or 3 to correspond to the three upload file ratios that the 
user has in his account. Set this number to to NOT award 
file credits for uploading. 

Upload byte ratio number: Set this number to a value of 

1, 2, or 3 to correspond to the three upload byte ratios that 
the user has in his account. Set this number to to NOT 
award byte credits for uploading. 

Upload file charge#: This value, together with the other 
three charged values (upload byte charged, download file 
charged, and download byte charge#) refer to values in the 
current accounting system schedule. If set to a value of 1, 

2, or 3, they correspond to one of the three charges for the 
respective function. If set to 0, the user is not charged for 
the transaction. The accounting system is covered in 
greater detail in another chapter. 



Subboards 143 



Auto-free after days: This field specifies the number of 
days that must pass after a file is uploaded before it will 
become completely free to download (no credit or 
accounting charges). 

Amaint inactive days: This field specifies the number of 
days that an item must remain inactive before 
automaintenance kills it. A post is inactive if it has not 
received a response in the specified number of days. A file 
is inactive if it has not been downloaded in the specified 
number of days. 

Last message serial number: This field holds the serial 
number of the last message that was posted in this 
subboard. This value must never be set lower. It is OK to 
set the value higher in the event that the subboard structures 
are lost, and the subboard is re-added using old data files. 

UUCP HiWater: In a UUCP subboard, this field holds the 
number of the last message that was imported from the 
UUCP directory. This field is automatically updated. 
However, if you wish to re-import messages beginning at a 
lower message number, just set this value lower and re-run 
the UUCP to CNet import program IUUNEWS. 

The " Edit Access Vars" screen 



[JKBHaiEHlftJM 



hvsical suBBQjrd : 2 




! 8-4,6-8, 2I»23 



xms mm, 
ui$ rehired 
Unload troops 
ptoad grwps 
est groups 



uring hours! 8 
: tw#5 ! 8-23 

ouhfest m ; " 

West a« 5 >? 

end»r restriction 1 Either 



iMofflSlJiSliS 



upload tint return »: 



Access groups: The range of access groups which may 
view this subboard on a list of subboards. It is important 



1 44 CNet PRO 3 Bulletin Board Service 



that you set this and other access variables for ALL 
subboards, regardless of whether the subboard is within a 
subdirectory that the user does not have access to. Certain 
CNet functions process subboards by physical number, with 
disregard for the actual subboard tree structure. 

Flags required: Each user has in his account fields called 
BASE and UDBASE flags. In order to enter a subboard, a 
user must "have" each of the flag numbers as specified by 
this field. CNet checks the user's BASE or UDBASE flags 
fields depending on whether the user is in the Message or 
Uploads area, respectively. For example, if the "flags 
required" is 0-4,10, a user with flags of 0-31 may enter, but 
a user with 0-9,11-31 may not, because he is missing flag 
10. 

Download groups: Determines which access groups may 
download files from this subboard. 

Upload groups: Determines which access groups may 
upload to this subboard. 

Post groups: Determines which access groups may post to 
this subboard. 

Response groups: Determines which access groups may 
respond to items in this subboard. 

Restricted hours: Set a range of hours during which to use 
an ALTERNATE set of "access groups" and "flags 
required" fields. This allows you to split access to the 
subboard based on the time of day. Restricted hours can be, 
for example, 0-23 for all day, 9-17, for 9am to 5pm, or 0-9, 
17-23 for all times OTHER than 9am-5pm. 

Groups during hours: Used instead of "access groups" 
during times of the day (system time) that fall within 
"restricted hours" as configured above. 

Flags during hours: Used instead of "flags required" 
during times of the day (system time) that fall within 
"restricted hours" as configured above. 

Baud-restrict hours: Set a range of hours during which to 
restrict access to the subboard based on the user's baud rate. 



Subboards 145 



For instance, you may not want users with 300-2400 baud 
using your games subboard during prime time. 

MinBaud during hours: The minimum baud rate which as 
user must be using in order to enter a subboard during the 
times specified by "baud restrict hours." The user's 
connect baud rate is displayed near the center of the bottom 
line of the status window. 

Computer types: This field is provided so that you may 
restrict access to a subboard based on the user's chosen 
computer type. CNet supports the configuration of 32 
computer types, each with a number to 31. Use the 
"computer types" field to select a range of computer types 
which may enter the subboard. A computer type "name" 
can be associated with each computer type number by 
referring to/modifying the file "CNET:BBSMENU," under 
the heading of menu number 30. 

Youngest age/oldest age: To enter the subboard, the user 
must fall within the age range as specified by these two 
fields. CNet uses the user's birth date as he supplied in the 
new user program. 

Gender restriction: Using this field, you can create 
subboards limited to just males or just females. 

Minutes time lock: This field specifies the number of 
minutes which must pass after a user logs in before he will 
be able to enter the subboard. 

Upload minimum free: This field specifies the minimum 
number of BYTES which must be free on the upload drive 
before CNet will allow an upload to occur. The default is 
1,000,000 (IMeg). 

Upload time return % : If, for example, a user spends 40 
minutes of his 50 minutes-per-call limit uploading, he will 
have little time left to do anything else. This field allows 
you to "give back" any fraction of that time once the upload 
is completed. 100% means ALL of the time will be 
returned— using the numbers above, the user will get 40 
ADDITIONAL minutes to use during that call or anytime 
that day. 50% means HALF of the time will be awarded. 
200% means DOUBLE the time will be awarded. 



146 CNet PRO 3 Bulletin Board Service 



The EL " Other Flags" screen 



-MPS 1: Jin Sel tick 

sical subboard! ! 2 
Subboard lists It 



IhuH-Dec-1993 1:B7a| 



ubboard dosed : Mo 

.efault 35 dropped ! Ho 

Shou ri»es/handles ! Handle (Nane) 

ddress Messages i Yes 
essages : No 

,., , ,,. ..-lidation 1 No 

loM dup check ! Ho 

o post/rip charges ', No 

ue transfortution ; Rttaint 

urge old responses i Ho 

il low aliases ; No 

tod i«u vote topics : No 

)tt. purge status ; fiuto 

fief, it«t overrides. ! Mo 

file payback «)! 6 

file cost to OUrfltK 1 



Invitation only : Ho 

Disable ALL HC1 ! Ho 

Private nessajes J Ho 

kf. Notify Oler ML; Ho 



Show unv. files 
No signatures 
No read charges 
File testing 



! No 
: No 
! No 
; (feiaint 



finamt adopt orphs : No 

Kill/edit own mm ', Ho 

Carbon copy to fflaii; Ye$/Def, Off 

Use CDROH tap dir : No 

Urn arnnsenent j Chronological 

Byts payback (»)! 8 

Byte cost to M.er(*)! 188 



Subboard closed: A flag that you can quickly toggle to 
temporarily keep users out of a subboard. Only sysops and 
subboard operators will be allowed to enter. 

Invitation only: If this flag is set to "yes," the only way 
that a user will be able to enter the subboard is if you 
specifically INVITE him using the "INvite" command from 
the subboard's prompt. To display a list of users invited to 
a subboard, use the "MEmbers" command. If the 
"invitation only" flag is set to "no," the invite command is 
still operational, but will in this case UN-INVITE specific 
users from a "public" subboard. 

Default as dropped: By default, users are "joined" to all 
subboards. Users can use the subboard commands "Join" 
and "DRop" to change this condition. If you set this flag to 
"yes," users must specifically JOIN the subboard before 
they will be able to scan or yank new messages from it. 

QWK reply upload sub: To allow your users to use the 
QWK system for reading and replying to messages offline, 
somewhere on your BBS you must create a direct disk 
access subboard which has this flag set to "yes." Assign it a 
subdirectory such as "UDBASEO:qwk/." This subboard 
will be used for temporary uploading of "QWK" reply 
packets when the user uses the "QWK" command from any 



Subboards 147 



command prompt. Users may also choose to enter this 
subboard and upload QWK packets directly. Only QWK 
packets will be accepted into this subboard, and all 
uploaded files will be deleted at completion of the QWK 
import procedure. The QWK subboard can be visually 
"hidden" (so that it accessible ONLY through the QWK 
command) by placing it inside a subdirectory which only 
the sysop can enter. However, for the command to function 
for users, the QWK subboard itself must have its access 
parameters set so all qualified users can enter and upload. 

Show names/handles: In terms of displaying user's real 
names, you may choose to have certain subboards more 
"private" than others, and some more "public" than others. 
Also, some network subboard require "names only". This 
field has 6 possible states from which to choose. They are: 

Handle (name) : Show (name) or (handle) if user 

Name (handle) : set his name as not-private info. 

Handle + name : Show both handle and name, 

Name + handle : you choose which one shows first. 

Handles only : Only show handles. 

Names only : Only show names. 

Sysops and subboard operators will always see both names 
on all messages, regardless of this field's setting. In 
addition, they will see anonymous and "alias" messages 
with user's handle in the parentheses. 

Disable ALL MCI: Setting this flag to "yes" will disable 
users from being able to enter MCI (control Q and Y) into 
their posts and responses. It will also prevent MCI in 
existing messages from being interpreted. 

Address messages: Setting this flag to "yes" will allow 
users to address their messages. Message addressees will 
have their names displayed in message headers, and will be 
notified of new messages addressed to them as they enter 
the subboard. Setting this flag to "force" will prevent a 
user from entering a message unless he has addressed it to 
someone. This setting is especially useful in file-mail 
subboards, described in the Mail chapter. Even if set to 



1 48 CNet PRO 3 Bulletin Board Service 



"no," sysops and subboard operators are always allowed to 
address messages. 

Private messages: Setting this flag to "yes" will allow 
users to mark messages in this subboard as "private," 
readable only by the addressee and themselves (and sysops 
and subboard operators). Setting this flag to "force" will 
automatically cause addressed messages to be marked as 
private. This setting is primarily useful in "private mail" or 
"file mail" subboards. Even if set to "no," sysops and 
subboard operators, and users with the "private messages" 
flag in their accounts set to "yes" are always allowed to 
specify messages as private. Even if set to "yes," users may 
only leave private messages if the "private messages" flag 
in their accounts is not set to "sub" or "yes." 

Anonymous messages: Setting this flag to "yes" will allow 
users to mark messages as being from "anonymous" instead 
of their real names or handles. Setting this flag to "force" 
will automatically cause all messages to be marked as 
anonymous. Even if set to "no," sysops and subboard 
operators, and users with the "write anonymously" flag in 
their accounts set to "yes" are always allowed to specify 
messages as anonymous. Regardless of the setting of this 
flag, users may only leave anonymous messages if the 
"write anonymously" flag in their accounts is set to "sub" or 
"yes." 

Def. Notify ULer @DL: Each file item is assigned a flag 
called "Notify ULer at DL" which, if set to "yes," will 
cause CNet to send mail to the uploader each time the file is 
downloaded. This item flag is only editable by sysops and 
subboard operators using the "AT" command from the 
subboard prompt. The "Def. Notify ULer @DL" flag 
allows you to specify the default setting of this item flag for 
each new upload to this subboard. 

New file validation: If you or the subboard operator(s) 
wish to personally view and "validate" new uploads before 
they are made public to other users, set this flag to "yes." If 
set to "no," new uploads will automatically be "validated" 
and will be available for immediate download. To validate 
new uploads, use the "Validate" command from the 
subboard prompt. 



Subboards 149 



Show unv. files: This flag determines whether or not your 
users will be shown unvalidated uploads. If set to "yes," 
users will see the word "< unvalidated> " in place of the 
item's actual filename (unless they themselves uploaded the 
file). Sysops and subboard operators are always able to 
view the filenames of unvalidated items. When the 
filename of an unvalidated item is displayed, the letter "v" 
will appear alongside the item number during a Scan. 

Global dup check: This flag, if set to "yes," will search 
ALL subboards accessible by the user to insure that the file 
is not already online before allowing that file to be 
uploaded. Many optimizations have been made in this 
searching algorithm, but it still may appear "slow" and even 
"timeout" some less-patient terminal programs when you 
have many thousands of files online to be searched. CNet 
has the ability to keep the subboard header files memory 
resident, avoiding ANY disk access during global duplicate 
checking. The header files are relatively small, so even a 
large BBS can usually do this without running out of RAM. 
Set the subboard flag "keep buffers" to "headers" to insure 
FAST duplicate checking if" you choose to use this feature. 

No signatures: Using the EP command, users can create 
custom "signature" files, which are automatically 
appending to the ends of messages. In some circumstances, 
these signature files may be unnecessary or unwelcome (in 
the case of many network subboards). Setting this flag to 
"yes" will prevent CNet from appending the user's 
signature files to messages written in this subboard. 

No post/rep charges: The accounting system has settings 
for charges (or credits) to be applied when users post or 
respond. Setting this flag to "yes" will cause those charges 
NOT to be applied for posts and responses in this subboard. 

No read charges: The accounting system has settings for 
charges to be applied when users reads messages in a 
subboard. Setting this flag to "yes" will cause those 
charges NOT to be applied for posts and responses read in 
this subboard. 

File transformation: A "script" file is a list of AmigaDOS 
commands to be executed in order. Scripts are sometimes 



1 50 CNet PRO 3 Bulletin Board Service 



also called batch or "BAT" files. Using scripts, CNet has 
the ability to "transform" files from one type to another. 
For example, in a subboard designed for IBM callers, you 
may wish to transform any files uploaded in .LHA form 
into .ZIP files. In most Amiga user subboards, you may 
wish to do just the opposite. This field controls WHEN the 
appropriate script will be executed. If set to "no", no 
transformation will take place. If set to "amaint," it will be 
performed during your auto-maintenance procedure. If set 
to "immediate," it will be performed while the user is still 
online, immediately after the file is uploaded. Please see 
the section concerning file transformation for more 
information about this powerful feature. 

File testing: Using the archiver programs, CNet has the 
ability to test new uploads for file integrity. This flag 
determines WHEN that testing will occur. If set to "no," no 
testing will be performed on the files. If set to "amaint," 
files will be tested during your nightly auto-maintenance 
procedures. If set to "immediate," files will be tested 
immediately after they are uploaded, while the user is still 
online. Files which FAIL the file integrity test are 
automatically UNVALIDATED and marked with a "!" 
character beside their item numbers during a Scan. Please 
see the section concerning file testing for more information 
about this powerful feature. 

Purge old responses: By default, auto-maintenance 
(amaint) will delete only ENTIRE ITEMS when they 
become inactive (a specified number of days passes without 
a response or download). However, setting this flag to 
"yes" will apply the "amaint inactive days" purge routines 
to INDIVIDUAL RESPONSES to items. As responses to 
items become "old" (the specified number of days passes 
since they were written), amaint will kill them without 
killing the original post or the "new" responses. 

Amaint adopt orphans: If you set this flag to "yes," 
amaint will automatically search all of the partitions for 
which the subboard is configured for "orphan" files (not 
listed as items on the subboard). These orphan files will be 
added to the subboard (provided there is room in the 
subboard). User number 1 (the sysop) will be listed as the 
"uploader" of these files. This option is useful for file 
networking subboards. 



Subboards 151 



Allow aliases: If you set this flag to "yes," users will be 
able to use any name (except the names of other users) 
when writing messages. When these messages are read, 
only the "alias" name will be shown. Sysops and subboard 
operators will see the user's handle inside of parentheses 
beside the alias. Sysops and subboard operators are 
allowed to use aliases at any time, and ARE allowed to use 
the names of BBS users when choosing aliases. 

Kill/edit own items: If this flag is set to "yes," users will 
be able to use the "Kill" and "EDit" commands to kill and 
edit posts or files that they have posted or uploaded in this 
subboard. If the "kill/edit own items" flag in the user's 
account is set to "no," he will not be able to kill or edit his 
own items regardless of the subboard's flag. If the 
"kill/edit own items" flag in the user's account is set to 
"yes," he will ALWAYS be able to kill or edit his own 
items regardless of the subboard's flag. Of course, sysops 
and subboard operators can kill or edit anything that they 
damn well please. 

Add new vote topics: Each subboard may have its own 
"voting booth," which users may enter by using the "VOte" 
command from the subboard prompt. This flag determines 
whether or not users will be able to add their own vote 
topics here. By default, only sysops and subboard 
operators may add vote topics to a subboard. NOTE: vote 
topics may be "linked" to items by using the "AT" 
command, and entering the vote topic's serial number. 
This will activate the VOTE command from the "respond 
or pass?" prompt. 

Carbon copy to EMail: This feature automatically creates 
a "carbon copy" of each post and response that is entered 
into the subboard and sends it to the addressee's private 
mail box. While reading his private mail, the addressee 
will be able to respond to message privately, and directly 
into the base in which the original message appears. If set 
to "no," no carbon copying is done. If set to "yes/def. on," 
users will begin to receive carbon copy messages 
immediately. If set to "yes/def. off," users will have to use 
the special command "CArbon" from the subboard prompt 
in order to enable carbon copied messages from that 



1 52 CNet PRO 3 Bulletin Board Service 



subboard. Users can use the "CArbon" command to disable 
carbon copied messages from subboards which send them 
by default. 

Def. purge status: Each item in each subboard has a field 
called its "purge status." The purge status determines when 
and how an item will be removed from the subboard. You 
can edit each individual item's purge status field by using 
the "AT" command. The subboard's "default purge status" 
field allows you to pre-set each new upload's purge status 
field to a specific value. These values are as follows: 

Auto: remove the item during amaint once the item has 
become inactive (no responses or downloads after a 
specified number of days). This is the default. 

@DL: once the item has been downloaded, immediately 
change the item's purge status to "@amaint" (see 
below). This is a very useful setting for a private 
user-to-user file-mail subboard. 

Query@DL: once the item has been downloaded, ask 
the downloader if he'd like for the item to be removed. 

@amaint: the item will be removed during the next 
auto-maintenance procedure. Using this as a default 
would cause all new uploads to the subboard to be 
deleted nightly. 

Protected: the item will not be deleted during 
auto-maintenance, regardless of its inactivity status. 

Use CDROM temp dir: if this flag is set to "yes," all 
downloads from this subboard will first be copied to a 
temporary directory. This CDROM temporary directory is 
defined in the CONFIG "paths..." screen. By copying files 
from the CDROM all at once at the beginning of the 
download, contention is avoided when multiple users 
attempt to download from the CDROM simultaneously. 
This contention could be a serious bottleneck in the case of 
a multi-disk changer. Users are notified that copying from 
the CDROM may take a few seconds. 

Item arrangement: users are able to select the order in 
which they would like items to be listed in the subboard's 
"scan" list. The command that users may use to change the 
order of items is "ORder." The subboard field "item 
arrangement" allows you to set an initial or default setting 
for the order of items in this subboard. Possible values are 



Subboards 1 53 



chronological, reverse chronological, alphabetical, and 
three "files first" versions of the first three values. When 
using a "files First" setting, files are always listed at the 
beginning of the list of items, followed by the posts. 

Def. item overrides: each file item has associated with it 
four values: file payback (#), byte payback (%), file cost to 
DLer (#), and byte cost to DLer (%). Each of these is 
described individually below. Each item also has 
associated with it a flag called "these items override." If 
that flag is set to "yes," then CNet will use the ITEM'S four 
variables when determining paybacks and costs. If that flag 
is set to "no," then CNet will use the SUBBOARD'S four 
variables for determining paybacks and costs. As new files 
are uploaded, CNet copies the subboard's four variables 
into the item's attributes. The subboard flag "def. item 
overrides" determines how each item's "these items 
override" flag is initially set on new uploads. In 
determining how you will set this flag, you must decide 
whether (when you change these four subboard values) you 
want your changes to affect ALL items, or only NEWLY 
UPLOADED items. 

File payback (#): how many file credits to award to the 
UPLOADER of this file each time that it is 
DOWNLOADED. 

Byte payback (% ): how many byte credits to award to the 
UPLOADER of this file each time that it is 
DOWNLOADED. The actual number of byte credits 
awarded is calculated as a percentage of the size of the file. 

File cost to DLer(#): how many file credits to charge the 
user who attempts to download this file. 

Byte cost to DLer(% ): how many byte credits to charge 
the user who attempts to download this file. The actual 
number of byte credits charges is calculated as a percentage 
of the size of this file. 

Sub-op account # (1-6): Each subboard can have 
associated with it up to 6 users who are the supervisors. 
They are sometimes called "fair-witnesses" or "trustees" of 
the subboard. CNet refers to these individuals as "subboard 



1 54 CNet PRO 3 Bulletin Board Service 



operators" (or "sub-op" for short). Subboard operators have 
all the privileges of system operators, but limited to their 
subboard only. They may kill or edit any item. They may 
view private, anonymous, and aliased message authors. 
They can download without being charged file or byte 
credits. For each subboard operator, enter their account 
number into one of the 6 entry boxes. Users can use the 
special command "View" to list the subboard operators of 
any subboard. 

Editing more than one subboard at a time 

The edit subboard "EL" command may also take an 
argument—a RANGE of subboard numbers from the current 
list of subboards. When you use this feature, CNet will 
bring you into the visual data editor with ALL of the fields 
ghosted (all black on blue). When you attempt to 
CHANGE any of the fields, that field will become active 
(white on blue). If you save your changes, the values in the 
fields you activated will be applied to all subboards in the 
range of subboards that you specified. 

Subdirectories: 

Creating a subboard tree structure 

As your BBS grows, you may find yourself continuously in 
need of adding subboards. With large numbers of 
subboards, it is helpful and more user-friendly to "group" 
similar subboards together, and not to present possibly 
hundreds of subboards to the user all on a single list. CNet 
offers this capability by providing a special type of 
subboard called a "subdirectory." Users will see 
subdirectories on lists with other subboards, but with the 
special marking of "(dir)" to the left of the subdirectory's 
name. Moving into a subdirectory is as easy as moving into 
a subboard~just enter its number at the command prompt. 
Instead of moving into an actual subboard, however, the 
user will be presented with a new list of subboards (and 
possibly other subdirectories). 

It is in this way that you can formulate a "tree" structure to 
your BBS's message and file areas. All global read-new 
and search commands automatically traverse subdirectories. 
In addition, there are several commands designed 
specifically for ease of movement through the subboard tree 



Subboards 1 55 



structure (described in the next section). Following is an 
example graphic representation of a subboard tree structure 
(each subdirectory shown may contain a number of 
subboards): 

files base 

I 
+__ + + + + 

new-games CDROM utilities pictures 

I I 

+ + + e tc. 

FishA-F FishG-R FishS-Z 

To create a subdirectory, use the AL command from the 
files or message area prompt, or from the prompt you 
receive immediately after entering any subdirectory. The 
process proceeds similarly to that of adding a subboard. 
When you are prompted "Is this a subdirectory?" however, 
answer Yes. You will still be prompted for a unique 
subboard name, and a path to data files. These are 
necessary, as the subdirectory may itself have entry, exit, 
and other data files which must be kept somewhere. If the 
process succeeds, you will be taken to the visual data editor 
as you were when entering normal subboards. You will 
notice, however, that many of the subboard variables do not 
apply to subdirectories. Those that do not apply will be 
"ghosted"— shown in black on blue, and un-editable. 

One very important note must be made. Subdirectories DO 
have their own access group, flag, and other access 
restriction variables. When users manually browse through 
the subboard tree, these flags will be honored just as they 
are for normal subboards. However, many "global" 
commands like Yank, and (Z) search move through the 
"physical" subboard structure, and do not follow the 
subboard tree structure. It is necessary and REQUIRED 
that you set access restriction variables on each individual 
subboard, regardless of its position within a subdirectory 
which may have its own access restriction settings. That is, 
although a subboard may not be visible to users because it 
is within a subdirectory that they do not have access to, 
they may still be able to access that subboard by using 
global commands, like "scan for new files as logon" or 
"yank global new." 



1 56 CNet PRO 3 Bulletin Board Service 



One note about limits. Any list of subboards may contain 
up to 238 subboards and subdirectories, in any 
combination. Subboards may be nested virtually 
indefinitely. For clarity and ease of navigation, it is wise to 
limit this nesting to no more than a few levels, however. 
The absolute number of subboards that CNet supports is, 
for all intents, unlimited. 

Navigating the subboard tree 

Several commands are available to provide for movement 
through the subboard tree. 

At any subboard or subdirectory prompt, the "List" 
command will provide the current list of subboards and 
subdirectories. Entering a number from this list at a 
subboard or subdirectory prompt will move you into that 
subboard (or in the case of a subdirectory, into a new list of 
subboards). 

The "> " and "< " commands are available to move to the 
"next" and "previous" subboards, respectively. These 
commands are "smart" in the sense that if the "next" 
subboard is actually a subdirectory, CNet will enter the first 
subboard in that subdirectory, recursively if necessary. 
Moving to the "previous" subboard works using similar 
logic. 

The 7" command will move the user to the previous list of 
subboards. This is equivalent to moving "up one branch" in 
the subboard tree. 

The ":" command will move the user to the "root" list of 
subboards, as if he had just entered the files or messages 
area from the main prompt. This command and the 
previous 7" command are similar in function to the DOS 
commands "CD :" and "CD /" respectively. 

Users may decide that they are not interested in certain 
subboards. These subboards may be removed from "> " and 
"< " traversal by being "dropped." The "DRop" command at 
the subboard prompt provides users with this ability. The 
"Join" command provides the opposite effect. "Dropped" 
subboards are also skipped in ALL global commands just as 



Subboards 1 57 



"scan for new at logon" and global searching. 

Each subboard may have an "entry" file and an "exit" 
file— files that are displayed to users as they enter and exit a 
subboard, respectively. To write or edit these files, a sysop 
or subboard operator may use the "ENtry" and "Xit" 
commands. To completely remove one of these files, save 
a blank file. These files are SKIPPED for users who have 
selected "super user" as their help level using the EP 
command. These files are by default SKIPPED for global 
commands like RA or SG. To show the entry and exit files 
during global commands, add the "banner" modifier. 

Rearranging and removing subboards 

You can move a subboard to any other position on the list 
of subboards. Use the "ML" command followed first by 
the number of the subboard you wish to move, and then by 
the new position you wish it to have. For example, to move 
subboard #10 to the beginning of the list, use "ML 10 1." 
The "ML" command is only able to move a subboard to 
another position in the current directory of subboards. 

To remove a subboard, use the "KL" command, followed 
by the subboard 's number from the list of subboards. You 
must be at the "Message base," "Upload base," or a 
subdirectory prompt— you must not be "in" a subboard. 
You will be asked if you would like to "delete files also." 
This provides you with a way of removing the subboard 
from the list, but not actually deleting anything. If you do 
not delete the files, and then re-add a subboard with the 
same "unique dirname" and paths, the subboard will 
"reappear." This allows you to move subboards to other 
subdirectories if you need to. 

Direct disk access subboards 

Direct disk access subboards provide users with the ability 
to perform "low-level" DOS directory commands (like 
"dir" and "cd") on a specific DOS subdirectory (like 
DH0:files/) or entire DOS partition (like RAM: or DFO;). 
Direct disk access subboards are convenient for 
maintenance operations, "quick swap floppy" subboards, 
and in some cases, CD ROM applications. 



1 58 CNet PRO 3 Bulletin Board Service 



Adding a direct disk access subboard begins just like 
adding any other subboard—with the "AL" command. 
Direct disk access subboards require unique subboard 
names and data paths to store subboard-specific data files, 
just like other subboards and subdirectories. The VERY 
important path for a direct disk access subboard is the 
"partitionO/CDROM/Netpath." This path should indicate 
the subdirectory or partition to which users of the subboard 
should have access. This path defaults to the data path. 

Note that users will ALSO have access to all DOS 
subdirectories visible within the path you choose. This 
means that if you select your path to be DHO:, users can 
also download from DH0:C/. 

Once you have entered the path information, you will be 
taken directly to the visual data editor to edit the new 
subboard's structure. Most of the fields here will be 
ghosted. This is the major disadvantage of using direct 
access subboards- most of the powerful subboard features 
are not available. Short file descriptions (DOS "filenotes") 
are limited to 79 characters in length. Simple statistics like 
the name of the uploader, number of downloads, and best 
CPS rate are unavailable in direct access subboards. 
Commands specific to these subboards are as follows: 

The "CD" command will display the current path. The CD 
command also takes arguments, just like DOS. Specify 
path names, use the 7" character to step back one directory 
tree level, or use the ":" character to return to the home 
directory. Users will NOT be able to move outside of the 
directory or partition as specified by the subboard's 
partition path. 

The "Scan" command displays the current directory's actual 
contents, in a format similar to the DOS "list" command. 
DOS wildcards are available here, as with most commands 
in the direct disk access subboard. 

The "Note" command will allow any user of the subboard 
to make changes to a file's filenote (short description). 
Because no distinction is made between users in this 
subboard, ANY user may make changes to the filenote. 

The "Kill" command may only be used by sysops and 



Subboards 1 59 



subboard operators. DOS wildcard characters may be used. 

The "Download" and "*" (select) commands work a bit 
differently here. Files matching the specified (optional) 
pattern are displayed one by one. The user has the option 
of responding "yes" to download the file, "quit" to stop 
listing files, or any other key to display the next file. 

The "Upload" command works as it does in any other 
subboard, except the user may not enter "long descriptions" 
for files. File "validation" is not an option here. 
Unfinished files are not marked as such, but may be 
resumed simply by using the "Upload" command again, 
and sending the file again (using a resumable protocol, such 
as Zmodem). 

In a subboard configured with the "QWK reply" flag set to 
"yes," only ".REP" files will be processed. Once QWK 
importing is finished, ALL files are then deleted. 

CD-ROM subboards 

Choose a unique dimame (and a default "path to data dir") 
just as with any other subboard. However, set the "path to 
partO/net/cd" field to point to the directory on your CDRom 
which will contain the files available in this subboard (like 
"CD:fishy800-820/820/"). Do not forget the last 7". To 
add the files into the subboard, use the "AO" command. A 
description of this command is given in the "uploading and 
downloading" section. 

You should set the "use CDROM temp dir" field to Yes if 
you are using a multi-disk CDROM unit, or a very slow 
single-disk unit. Setting this field to Yes will prevent two 
users from using the CDROM at the same time. Files are 
copied from the CDROM to the temporary directory you 
chose from the CONFIG "paths..." screen before they are 
used. 

UUCP subboards 

Choose any "unique dimame" for this subboard that you 
wish. The "path to partO/cd/net" field should be set to the 
path where the UseNet message files are stored for this 
subboard (like "UUNEWS:rec/arts/startrek/"). Do not 



1 60 CNet PRO 3 Bulletin Board Service 



forget the last 7". The origin/distribution line should 
contain the information added to the outgoing 
"distribution:" lines (like "world" or "na"). Set the network 
affiliation field to read "UUCP". See the networking 
chapter for more information. 

FidoNet subboards 

The "unique dirname" for a FidoNet subboard should be the 
network tagname of the echomail area. You should set the 
"network affiliation" to reflect the network with which the 
subboard is associated. If you do not wish to use the 
default CONFIG origin line, you may enter a custom origin 
line for the subboard into the "origin/distribution" field. If 
you are using CNet's tosser, you may leave the "path to 
data dir" and "path to partO/cd/net" fields set to then- 
defaults. If you are NOT using CNet's tosser, you need to 
set the "path to partO/cd/net" field to point to the 
subdirectory where the ".msg" files are kept for this 
subboard. See the networking chapter for more 
information. 

Items and the post and response format 

Two things that CNet message bases are NOT; An 
"unthreaded" message base simply lists all messages in 
chronological order, each with its own title, without links 
between messages at all A fully threaded message base 
allows responses to messages, and responses to responses, 
producing links between messages going in all directions. 
Fully threaded message bases also often list messages in 
strict chronological order. 

CNet uses a "post and response" format in each subboard. 
Only posts have titles and appear on a list to the user. AH 
responses to a post are added to the end of that post. This 
method is very different from the unthreaded or fully 
threaded message base formats. It is possible to consider 
CNet to have a "partially threaded" message base. The 
"Read" command is used to read an item and its responses 
together. Because all responses to a post are grouped 
together chronologically, responses to responses are not 
encouraged. 

CNet's "post and response" format offers a great deal of 



Subboards 161 



organization and ease of use—users do not have to deal with 
each message individually, but rather as groups of 
messages or "items" of conversation. Users do not have to 
deal with BBS messages like "this is message 52332 in 
response to message 49223." Nevertheless, you will find 
that users sometimes respond "off topic." When this 
happens, you should encourage them to use the "Post" 
command to bring up a new subject, instead of using the 
"Respond" command at the "respond or pass" prompt. 

At the very end of reading an item, or at the end of each 
response, depending on the setting of the EP option 
"message pausing", the prompt "respond or pass" appears. 
From this prompt, the following options are available: 

. : read the entire item again, beginning with the 
original post. 

+ {n}: move forward a specified number of responses. If 
you just read response 2, "+3" will read response 5. 

- {n}: move backward a specified number of responses. 

Again: read the most recently read message again. Repeats 
what you just read. 

Last: read the LAST response to the item. 

New: begin reading the item from the first new response. 

Over: read the item over, beginning where you did when 
you first began reading the item. That is, if you were 
reading new items, "over" will begin at the first new 
message. Otherwise, "over" will begin at the first message. 

Post: same as the post command from the subboard 
prompt. This allows you to enter a new post (even quoting 
from the item you are currently reading) when a response to 
the existing item would be inappropriate. 

Quit: stop reading this item. If you are reading multiple 
items, no further items will be read. When reading multiple 
items, and you want to stop reading this item, moving on to 
the NEXT item, use the "pass" command instead. 



162 CNet PRO 3 Bulletin Board Service 



Respond: add a response message to this item. The 
message you enter should be relevant to the item's 
discussion. If you are about to enter a message off-topic, 
use the "Post" command instead. 

Scan: list the response numbers, dates, authors, and 
addressees of all responses. The original "post" message is 
considered response "0". 

Vote: sysops and subboard operators may add 
subboard-specific vote topics to a subboard by using the' 
subboard "VOTE" command. Users may vote on these 
topics by using the VOTE command. Individual subboard 
vote topics may be "linked" to specific items by using the 
AT command to set the "vote link serial#" field to the vote 
topic's serial number (displayed when you vote on the 
topic). In this way, the VOTE command can then be used 
from the "respond or pass" prompt, immediately voting on 
a specific topic. 

Yank: Bundle all messages in the current item for 
downloading. Invokes the yank-task to bundle this 
particular item. See the description of the yank-task in the 
"downloading messages" section. 

Z : invoke the interactive text search on this particular 
item. See the description of the Z command in the "finding 
what you are looking for" section. 

< {n}: When reading multiple items, as with the "RN" or 
"R ALL" commands, the "< " command can be used to go 
BACK a specific number of items in the range of items. 
This can be useful, for example, if you are reading items, 
and forgot to respond to one. Instead of quitting, or 
remembering where you were and going back later, use the 
"< " command. 

» {n}: When reading multiple items, as with the "R all" or 
"R favorite" commands, the "> " command can be used to 
go FORWARD or SKIP a specific number of items in the 
range of items. 

The commands Download, Examine, Grab, Validate, * 
(select), Write, ATtribute, Kill, TEst, TRansform, and EDit 
(all described elsewhere) are also available from this 
prompt. 



Subboards 1 63 



Ways to find what you are looking for 

When a subboard contains items, how do you see what's 
there? How do you find the items you are looking for? 

The "Scan" command is probably the subboard command 
you will use the most. Scan shows items numbers, post or 
upload dates, number of responses, filenames or titles, file 
sizes, and descriptions. A '*' is printed to the left of the 
number of responses if the item itself is "old" but contains 
new responses. Other characters may appear to the left of 
the date, like '!' if the item is "missing" (off-line) or if the 
item failed the integrity check, '+' if the item is marked as 
a "favorite" item, V if the item is un-validated, '-' if the 
item is unfinished or undescribed, or 'p' if the item is 
private. Only sysops, authors, and addresses will see the 
'p'—other users will see "< private item> " in place of the 
title. The V will only be shown if the subboard flag "show 
unvalidated" is set to Yes. Otherwise, users will see 
"< unvalidated> " in place of the title. 

Use SG to scan all items on all subboards, or SA to scan 
new items on all subboards. Any of the range keywords 
may be used with the Scan command (see the section 
"selecting ranges of items"). The 'text' operator is 
especially useful with the Scan command. It searches for a 
pattern of letters or characters within titles or short 
descriptions. "SG 'text'" will find items with "text" in their 
title or short descriptions on all subboards. 

Browse works very similarly to Scan. Browse, however, 
offers a command prompt after each screen full of Scan 
output. Many of the most important item commands are 
available from this prompt. * (select), Read, Download, 
Grab, Examine, Kill, EDit, TEst, TRansform, Write, 
Validate, and others. So many people find Browse a more 
efficient alternative to the Scan command that the Browse 
command is available from the NSAL command (New 
Scan at Logon), and the prompt that appears when you first 
enter a subboard with new messages. Use BG to browse all 
subboards, BA to browse new items on all subboards. All 
range keywords are available to the B and BG commands 
(see the section "selecting ranges of items"). 



1 64 CNet PRO 3 Bulletin Board Service 



The FIND command is available from any command 
prompt. FIND will search for FILES whose filenames 
match a pattern you specify. The only limitation with 
FIND is that it is only able to search the first NINE 
characters of filenames. FIND is not a good way to search 
for files with specific "extensions" (suffixes). If you do not 
specify any wildcards, CNet will add "*" to the beginning 
and end of your input, matching files with your string 
anywhere in the first nine characters of their filenames. All 
DOS wildcard patterns are available for use with the FEND 
command. For example, FIND ([a-b]*|cn*) will match files 
beginning with A, B, or CN. When FIND locates a 
subboard with at least one file matching the pattern you've 
specified, a "Browse" command is performed on that 
subboard, as if you had used "Browse" with the FIND 
pattern as its argument. 

The FIND command is usually very quick. On BBSs with 
large numbers of subboards, you may need to set the "keep 
headers" fields of those subboards to "headers only" in 
order to maintain the efficiency of FIND (and the global 
duplicate checking routines). See the description of the 
"keep headers" field, or the "memory" section of this 
chapter for more information. 

CNet provides a way to search the TEXT of messages. 
This is the SLOWEST of the available search methods, and 
should NOT be used to just look for TITLES. Use the "Z" 
command when you really want to search the messages 
(items and responses) of items for a specific text string. 

You are given the option to search using a background 
process (in fact, the yank-task). If you choose to use 
yank-task, CNet will allow you to continue to use the BBS 
while it performs the search. You will receive an OLM 
when it has finished. The "RM" command is used to read 
the marked messages. When you search using the 
background process, you are able to set keywords AND 
filters, as you are able to do with the "NSAL" and "NM" 
commands (see a description of these in the "Scanning for 
new messages and files at logon" section. 

If you choose NOT to use a background process, CNet will 
search interactively. You are only able to select 
"keywords," not "filters." When a matching item is found, 



Subboards 1 65 



you are shown the item "scan" display, and individual lines 
of text which contain the keyword(s). The keyword(s) will 
be highlighted. If one number is shown before the line of 
text, it is the text line number in the original post. If two 
numbers are shown, the first is the response number, and 
the second is the text line number. 

Press control-C at any time to abort the search. Use "ZG" 
to search ALL subboards. All range keywords are 
available to the Z and ZG commands (see the section 
"selecting ranges of items"). 

Uploading and downloading files 

To download a file or a range of files, use the "D" 
command. To "select" files for downloading, use the "*" 
command. When you are ready to download all of your 
selected files, use the "DS" command. Files that you 
un-select at the "DS" prompt will be "temporarily" removed 
from the select list. Once you have completed the 
download, the un-selected files will reappear. 

To empty your select list, use the "*C" command. To view 
your selected files, use the "SS" command, files that you 
un-select from the "SS" prompt will be removed 
permanently from your select list. 

CNet will allow you to select more files than you have time 
to download with the current call. A message to this effect 
will be displayed when the select list is displayed. During a 
download, CNet will automatically arrange files so that as 
many files can be completely sent as possible within the 
time allowed. CNet will also allow a user to begin 
downloading a file for which he does not have the time to 
complete. This allows users with limited call times to 
download very large files, provided they are using a 
resumeable protocol like Zmodem. They can resume 
interrupted downloads on the next call. 

When downloading files from a subboard with the "Use CD 
ROM temp dir" flag enabled, CNet will first copy all of 
these files to the CD ROM temporary directory (as 
configured from the CONFIG "paths..." screen). This 
option is provided to prevent multiple users from accessing 
the CD ROM simultaneously, creating bottlenecks. 



1 66 CNet PRO 3 Bulletin Board Service 



You may "download" files from local mode. CNet will 
prompt you for a path. If you enter a path, CNet will 
actually copy the selected file(s) to this "target" path. 

To upload files, use the "U" command. CNet will first 
prompt for a file transfer protocol. With this knowledge 
ahead of everything else, CNet will know whether or not to 
allow the user to "skip" the filename prompts. When using 
a "batch" protocol (like Zmodem or Ymodem), the 
filenames are included in the data transferred over the 
modem during the transfer. When using a non-batch 
protocol (like Xmodem), the user must enter the filename 
because it is not transferred with the actual file. 

CNet will check the subboard "upload minimum free" field 
to make sure there is enough free space on the disk. In the 
case of subboards with multiple partitions, CNet will 
choose to upload to the partition with the most available 
free space. All files in a given batch upload will always be 
placed on the same partition. 

Just as is possible with posts (and if allowed by the 
subboard) you may choose an addressee, choose an alias, 
select to be anonymous, select to be private, etc. See the 
description of the "post" command for more information. 

A user may be disconnected while uploading a file. 
Depending on the protocol he is using, CNet may or may 
not delete the unfinished file. If the protocol is 
"resumeable" (see the protocols... section of the CONFIG 
chapter) like Zmodem, the file will be added to the 
subboard, but as "unfinished." The file will be marked with 
"!" next to the item number on a scan list. CNet will report 
the message "(unfinished file)" when the item is read. 
Unfinished files cannot be downloaded. 

Any user, using a "resumeable" file transfer protocol, may 
complete the unfinished upload. The way to do this is by 
using the "U" command, followed by the unfinished item's 
number. It is OK to upload other "new" files at this time as 
well. The user completing the file will receive the file and 
byte credits, and will be considered "the uploader" of the 
file. 



Subbaards 1 67 



The file transfer log (read using the "LU" command) 
normally shows the one letter "unique identifier" for the 
protocol used to upload, followed by the baud rate (like 
"Z144"). If the file was left unfinished, a "U" will instead 
be used (like "U144"). If the file was resumed and 
finished, a "R" will instead be used (like "R144"). 

Two files by the same name may never be uploaded into 
the same subboard. If the subboard option "global dupe 
check" is enabled, a file with a name matching the name of 
any other file in any other subboard may not be uploaded. 
This feature uses a method similar to the "FIND" command 
to locate duplicate filenames. On larger systems, this may 
take considerable time during a file transfer, and may even 
cause the file transfer protocol to "time out." To prevent 
these delays, and providing you have enough memory, 
insure that the subboard "keep buffers" fields of all of your 
upload area subboards are set to "headers only." 

After an upload, you will be asked to enter descriptions for 
your files. A "short" description is always required. In 
fact, a file must have a short description, be finished, and 
be validated before you will receive file or byte credits for 
the file. The maximum number of lines used for short 
descriptions is determined by a field on the CONFIG 
"limits..." screen. Long description are optional. If you 
leave files undescribed, you may later use the "W" 
command to write descriptions for them (and to receive 
credits). 

If you immediately disconnect after an upload, CNet will 
send you mail telling you of unfinished or undescribed 
files. 

There is a way to "upload" your short descriptions along 
with the files themselves. You may upload a file entitled 
"files .bbs." This file should be formatted as: 

filename description line 1 

(description line 2} 

{etc} 
filename2 description line 1 

(etc | 

{etc} 



168 CNet PRO 3 Bulletin Board Service 



All filenames should be entered at the beginning of a line. 
The rest of the line, and all consecutive lines which begin 
with a space or a TAB, will make up the short description 
for that file. You may describe as many files as you wish. 
CNet will automatically delete the "files.bbs" file after the 
upload-it will never be added to the subboard as an item 
itself. 

You are limited as to the number of files which you may 
upload at once by a field on the CONFIG "limits..." screen. 

Adopting Orphan Files 

The way to add files which are already on the disk to a 
subboard is by using the "AO" (Adopt Orphans) command. 
You will be prompted for a partition number and a file 
pattern. Access to this command is controlled by a user 
privilege flag. This command operates very similarly to the 
Upload command. Perhaps where this command is most 
useful is with CD ROM subboards. After you have 
configured a CD ROM subboard (described in a section 
above), use the AO command to add items to the subboard. 
Many CD ROMs contain "files.bbs" or other description 
files. Give CNet the appropriate description filename as 
found on your CD ROM, and CNet will automatically 
adopt the short descriptions. To automate the entire process 
(to skip the prompts for short and long descriptions), use 
the "AO!" command. NOTE that there is a maximum to 
the number of files that you can adopt at one time as 
determined by an option on the CONFIG "limits..." screen. 

The "AO" command may be used from a QWK direct 
exchange subboard to adopt QWK reply packet(s) without 
uploading them. You must have placed the QWK reply 
packet(s) into the subboard's directory. 

Other ways to view files 

CNet offers two ways to "view" a file without actually 
downloading it-"Examine" and "Grab." 

The "Examine" command is used to view the contents of an 
"archive" file (like Zip, Zoo, Arc, Lha, etc.). It is often very 
helpful to know the names of the files stored in an archive 
before you spend time downloading it. 



Subboards 1 69 



In order for CNet to recognize an archive as being a 
viewable archive, its archive type must be listed in the 
"archivers..." screen of the CONFIG program, with a valid 
"view format" field. See the CONFIG chapter for more 
information. 

The "Grab" command is used to display the ASCII or 
HEXADECIMAL contents of a file. Grab will ask "Hex or 
ASCII?" Selecting Hex will produce a display similar to 
the "type opt h" DOS command. Selecting ASCII will 
cause CNet to attempt to "read" the file. NOTE that 
attempting to ASCII-grab a non-ASCII file may produce 
unintelligible gibberish on the screen. 

Selecting ranges of items 

There are MANY ways to select items to scan, read, 
download, etc. You can select items by number or name. 
Any valid RANGE of numbers may be used, like "RP, 
"Rl-5", "Rl,10" etc. Names may contain any valid DOS 
wildcards, like "S file", "S *.txt", "S br*", "S games.???", 
etc. 

Following are the keywords which may be added to any 
subboard command allowing the selection of a range of 
items: 

all: all items. For example, "Read all." 

banner: for global commands, like RA and SA, show the 
subboard entry files. For example, "RA banner." 

brandnew: only new items. Old items with new 
responses will not be matched. For example, "S 
brandnew." 

by {user}: items posted or uploaded by a particular 
user. If used with the "mess" keyword, messages written 
by a particular user, {user} may be either an account 
number or a handle. If the handle contains spaces, do not 
forget to use quotation marks. 

byme: items posted or uploaded by you. If used with the 
"mess" keyword, messages written by you. 



1 70 CNet PRO 3 Bulletin Board Service 



favorite: items marked as sysop favorites. Sysop 

favorite items have "+" next to their item numbers on the 
Scan display. Sysop favorite status is toggled on and off 
using the AT command. 

first (or A ): the first item in the subboard. 

free: items marked as free downloads. Free download 
status is toggled using the AT command. 

last (or $): the last item in the subboard. 

mess: consider individual messages— items and responses 
together. Without this modifier, all commands operate on 
ranges of ITEMS, not messages. See the next section for 
more information. 

new: only new posts, new files, AND old items which 
have new responses. For example, "Scan New" or its 
BBSMENU alias, "SN." To disregard old items with new 
responses, use "brandnew." 

newresp: only old items with new responses. New 
posts and newfiles without responses will be disregarded. 

next: if you finished reading or using a particular item, 
this will match the NEXT item on the list of items (current 
item plus 1). 

pass: skip the "respond or pass" prompts when reading 
items. This can also be accomplished by using the "!" like 
**R2!." 

preview: read one "old" response when reading old 
items with new responses. For example, if an item has 10 
responses, 2 of them new, "Read New" will read only the 
last two responses. "Read New Preview" will read the last 
THREE responses. The BBSMENU abbreviation "RN" is 
by default set to "Read New Preview." 

previous: if there was an item most currently read or 
manipulated, this will match the PREVIOUS item on the 
list of" items (current item number minus 1). 



Subboards 1 71 



private: only those items written with the PRIVATE 

flag set. This keyword does not work with the "mess" 
keyword. 

reverse: process the range of items in REVERSE 

order. For example, "Rl-10 Reverse" will begin reading 
with item 10, then 9, etc., down to 1. 

since {date}: matches items posted or uploaded AFTER a 
given date, {date} has the format DATE-MONTH-YEAR. 
You may leave off the YEAR or BOTH the MONTH AND 
YEAR. CNet will default to the current YEAR and 
MONTH. This keyword works with the "mess" keyword, 
{date} can be a single NEGATIVE integer, representing an 
offset from the CURRENT date. "Read since -2" will read 
all messages posted within the last two days. 

this (or current or .): match the most recently used item. 
For example, after "R2" "R this" will re-read item number 

2. 

to {user}: items posted or uploaded TO a particular 
user (the addressee). If used with the "mess" keyword, 
messages written to a particular user, {user} may be either 
an account number or a handle. If the handle contains 
spaces, do not forget to use quotation marks. 

tome: items posted or uploaded TO you. If used with the 
"mess" keyword, messages written to you. 

until {date}: matches items posted or uploaded BEFORE 
a given date. {date} has the format 
DATE-MONTH-YEAR. You may leave off the YEAR or 
BOTH the MONTH AND YEAR. CNet will default to the 
current YEAR and MONTH. This keyword works with the 
"mess" keyword, {date} can be a single NEGATIVE 
integer, representing an offset from the CURRENT date. 
"Read until -2" will read all messages not posted within the 
last two days. 

unval: matches items which are unvalidated, undescribed, 
or unfinished. In other words, files for which users have 
not yet received credits. 



1 72 CNet PRO 3 Bulletin Board Service 



'text': By placing text within single quotation marks 
(apostrophes), you can match only items which contain that 
text within their titles OR short descriptions. For example, 
"S 'txt'" will find all files with TXT in their titles or short 
descriptions. "SG 'txt'" can be a useful way to search the 
short descriptions of all files on all subboards. 

Scanning and reading messages in 
" chronological" order 

CNet uses a very rigid "item and response" format. Very 
rarely are individual messages (like responses) referred to. 
A special argument "mess" may be used with the Scan and 
Read commands to display in chronological order as they 
were entered into the subboard. Posts and responses are 
completely "unthreaded" and treated as equal entities. The 
Scan mess command will give the date, the author, the 
addressee, and the subject of each message. Each message 
(post or response) has its OWN "message number" which is 
a different animal from the arbitrary item numbering you 
see when you do a Scan (without mess). When you select 
to "Read 10", the tenth post (and its responses) from the 
scan list will be displayed. However, "Read mess 10" 
displays the 10th message (post or response) that was 
entered into the subboard. For example, "Scan mess until 
1-6-93" will display the header information of all messages 
entered before June 1, 1993. "Read Mess 255" will read the 
255th message. 

The "mess" operator is especially useful in conjunction 
with the "to," "by," "tome," and "by me" operators. The 
"read tome" command will only read ITEMS which are 
addressed to you. If you want to read all MESSAGES 
(items AND responses) addressed to you, you can use "read 
mess tome." Of course the "mess" operator works well 
with other popular versions of the scan and read commands, 
like "RN mess tome" or "SG mess tome." 

When reading messages, a limited capability "respond or 
pass" is given. It is possible to respond to the item, or post 
a new message at this prompt. If the message belongs to an 
item which has a file attached, the popular download, 
examine, grab, and * (select) commands will also be 
available. 



Subboards 1 73 



Ratios, paybacks, and the 
file and oyte credit systems 

Each user's file has two fields, "file credits" and "byte 
credits." These are usually set to increase when the user 
uploads and decrease when the user downloads. These 
fields may ALSO be set to increase when another user 
downloads files that the user uploaded (this is called a 
"payback"). 

When an item will cost a certain number of file credits and 
byte credits to download, the user may not download that 
file unless he has at least those numbers of credits. All new 
users are given the an initial amount of file and byte credits 
as set on the CONFIG "defaults..." screen. 

An item will require NO file or byte credits to download if 
the "free download" flag is set in the item's attributes (set 
using the AT command). 

Each subboard has the fields "file cost to DLer(#)" and 
"byte cost to DLer(%)" (set from the EL command). Each 
item has the fields "file cost to DLer(#)" and "byte cost to 
DLer(#)." When an item is uploaded, the subboard 's "file 
cost to DLer(#)" field is copied into the item's "file cost to 
DLer(#)" field. Also, a PERCENTAGE of the item's total 
size is copied into the item's "byte cost to DLer(#)" field. 
This percentage is given by the subboard 's "byte cost to 
DLer(%)" field. When downloading, CNet will use the 
item's copies of these fields if the item's "these vals. 
override" flag is set to Yes. Otherwise, the subboard's 
values are used. NOTE that you can set the default value 
of the "these vals. override" flag for new uploads by setting 
the subboard's "def. item overrides" flag to Yes or No. 
NOTE that you may use the AT command at any time to 
change the "these vals, override" flag and then to manually 
change the number of file and byte credits required to 
download this file. 

Each subboard has two fields, "upload file ratio#" and 
"upload byte ratio#." Each field may have a value between 
and 3. When set to 0, uploaders will receive NO 
CREDITS. The values 1 to 3 correspond to the three "file 
credit ratios" and "byte credit ratios" that each user has in 



174 CNet PRO 3 Bulletin Board Service 



his account. These credit ratios in the user's account 
actually control the number of credits the user receives for 
uploading-the subboard fields merely specify which of the 
user's ratios to use. 

A file credit ratio of means the user receives no file 
credits when he uploads. A file credit ratio of 1 means the 
user will receive 1 file credit for each file he uploads. A 
ratio of 2, 2 file credits per file uploaded, and so on. A byte 
credit ratio of means the user receives no byte credits 
when he uploads. A byte credit ratio of 1 means the user 
will receive 1 byte credit for each byte be uploads. A ratio 
of 2, 2 byte credits per byte uploaded, and so on. 

"Paybacks" provide a way of rewarding the uploader based 
on the number of times his uploads are actually downloaded 
by other users. They are actual credits added to the 
uploader's file and byte credit fields. You may actually 
choose to use this method of rewards IN PLACE of the 
ratio system, or in conjunction with it. 

Each subboard has the fields "file payback (#)" and "byte 
payback (%)" (from the EL command). Each item has the 
fields "file payback to ULer(#)" and "byte payback to 
ULer(#)." When the item is uploaded, the subboard's "file 
payback (#)" field is copied into the item's "file payback to 
ULer(#)" field. Also, a PERCENTAGE of the item's total 
size is copied into the item's "byte payback to ULer(#)" 
field. This percentage is given by the subboard's "byte 
payback (%)" field. When downloading, CNet will use the 
item's copies of these fields if the item's "these vals. 
override" flag is set to Yes. Otherwise, the subboard's 
values are used. NOTE that you can set the default value of 
the "these vals. override" flag for new uploads by setting 
the subboard's "def. item overrides" flag to Yes or No. 
NOTE that you may use the AT command at any time to 
change the "these vals. override" flag and then to manually 
change the number of file and byte credits that the uploader 
will receive when this file is downloaded. 

The total number of credits that the user received for the 
upload (through either ratios or paybacks) are stored in the 
item's "file credits to ULer" and "byte credits to ULer" 
fields (from the AT command). If the file is unvalidated by 
a sysop, or killed by the uploader, these credit values are 
subtracted from the user's file and byte credits. 



Subboards 175 



Users will not receive rewards for downloading files that 
they uploaded. 

Ways to kill, edit, or move existing items 

Subboard operators and any user with the "kill/edit any 
file" privilege flag may use the "Kill" command to remove 
items from a subboard, or the "EDit" command to change 
the contents of a message. Users with the "kill/edit own 
files" privilege flag but without the "kill/edit any file" 
privilege flag may only use the "Kill" command to remove 
items posted or uploaded by them, and may only use the 
"EDit" command to change the contents of messages 
written by them. 

When killing posts, one prompt is given to verify the kill. 
When killing files, one prompt is given to verify the kill, 
the file is deleted from the hard drive, and any upload 
credits received for the upload are removed. Options exist, 
however, if the user has the "kill/edit any file" privilege 
flag or is a subboard operator. 

In the later case, the prompt "credit removal factor [0]" is 
given before kill verification. This variable will instruct 
CNet how to remove credits from the uploader. A value of 
(or just pressing return) will not remove any upload 
credits received by the uploader for uploading the file. A 
value of 1 will remove the same number of credits that the 
user received when uploading the file. A value of 2 will 
remove twice the number of credits, and so on. 

For subboard operators and users with the "kill/edit any 
file" privilege flag, the prompt "delete this file" also 
appears just after the "delete this post" prompt. Answering 
Yes to delete the post, but No to delete the file will result in 
the file being left on the hard drive as an "orphan." 
Answering No to delete the post, but Yes to delete the file 
will "transform" the file into a "post." This is a very useful 
feature when you wish to save the discussion about a file, 
but wish to delete the file itself. 

The EDit command first prompts for a response number. 
The response number "0" means the "root" or "post" 
message. Sysops and subboard operators may change the 



1 76 CAfef PRO 3 Bulletin Board Service 



message's date. According to the same access restrictions 
that are used when posting or responding, users may change 
the anonymous or private status of a message, change the 
addressee, or change the alias. 

The Kill and EDit commands may also be used from the 
item "respond or pass" prompts. At these prompts, the Kill 
and EDit commands default to the current item. A response 
number may be specified as an argument to Kill or EDit a 
specific response. The Kill command also accepts a 
RANGE of response numbers to kill. 

NOTE that killed items are not actually PURGED from the 
subboard structures until auto-maintenance runs. Simply 
killing items will not make room for new items in a "full" 
subboard until auto- maintenance time. 

Sysops and subboard operators can MOVE an item (or 
range of items) to another subboard by using the "MOve" 
command. When asked to choose a destination, you may 
choose a number from the current list of subboards, or use 
the 7" or ":" keys to move to the previous or top directory 
level, respectively. The "top" directory level consists of 
two subdirectories, the "message base" and the "upload 
base." This means that you are able to easily move posts 
and files between the message base and the upload base. 
You can "move" files to the SAME subboard for the 
purpose of changing the PARTITION that they are stored 
on. There are three other prompts given by the Move 
command. 

"Move to which partition": a list of the available 
partitions is given, together with their available disk space. 
The default will be to use the first partition listed. If you 
are moving only posts (no files), just press ENTER at this 
prompt. Otherwise, select from the list. 

" Re-new item post dates" : Whether or not you want the 
item's post date to be updated to today's date. The affect 
that this will have is changing the item's position on the 
Scan list (when sorted chronologically), and causing the 
item to appear as "new" again to all users. The individual 
messages, when read, will retain their original dates. 

" Kill source items" : Whether to remove the originals. If 



Subboards 1 77 



you are moving items between subboards, this allows you 
the opportunity to just "copy" them. 

File validation 

File validation provides the sysop or subboard operator 
with a way of "checking" uploads before they are made 
public. Depending on the circumstances under which you 
run your BBS, it may be wise to check for copyrighted or 
explicit material before allowing users to download new 
uploads. "Unvalidated" files must first be "validated" by a 
sysop or subboard operator before they may be 
downloaded. New uploads are marked as "unvalidated" if 
the subboard flag "file validation" is set to Yes, and the 
user's "skip file validation" privilege flag is set to No. 
"Unvalidated" files may only be "validated" by using the 
"Validate" command. 

The Validate command may also be used to "unvalidate" 
files which have already been validated. 

If the subboard flag "show unv. files" is set to No, the 
filename of unvalidated files is replaced with 
"< unvalidated> " when using the Scan or Browse command. 
If this flag is set to Yes, or a sysop or subboard operator 
uses the Scan or Browse command, filenames of 
unvalidated files are shown, however a letter "v" will 
appear next to the item number. 

Upload credits are only awarded for validated files. The 
file must also be finished and described to receive upload 
credits. When the validate command is used to unvalidate 
a finished and described file, upload credits are removed 
from the uploader. 

To remind users that upload credits are only awarded for 
validated files, the file "systext:validation" is displayed at 
the completion of an upload in a subboard where the "file 
validation" flag is set to Yes. You may edit this file to 
display any message you wish. 

Downloading messages-the "yank-task" 

Spending time on-line reading messages can be costly. Not 
only considering phone charges for the caller, it also ties up 



178 CNet PRO 3 Bulletin Board Service 



the port so no other users can get on the system. CNet 
incorporates a very powerful "background task" called 
"yank-task." The "yank-task" can read messages and pack 
them into a downloadable file for offline reading, all while 
you are still on the BBS doing other things. This process is 
called "yanking" messages. Once a yank has been started, 
you will be returned to the BBS. When finished, Yank-task 
will inform you using an OLM (On-line Message). If 
successful, the downloadable file will be placed into your 
select buffer (viewed using "SS" and downloaded using 
"DS"). You may log off and return to the BBS later to 
retrieve the yank file. 

While you are in a subboard, the "Yank" command can be 
used in all ways that the "Read" command can be used. 
You can "Yank" any range of messages, or use the 
command "YN" to yank just the new messages. The "YA" 
command operates a little differently than the "RA" 
command, however. See the next section for a discussion 
of that. 

There are actually TWO ways to yank messages. Your 
answer to the question "use QWK off-line reader format?" 
will determine which method of yanking is performed. If 
you select NOT to use the QWK format, yank-task will 
create an ASCII text file. 

The text file that yank-task creates will have a filename 
consisting of the two letter "yank identifier" that you 
choose from the CONFIG program's "defaults..." screen, 
followed by the current month and date, and then a two 
digit number that increments each time you use yank-task 
on the same day. Yank-task will pack the" text file using an 
archiver program if the user has chosen to use one from the 
"EP" command's "message bundling" field. Usually TXT 
(no packing), LHA, ARC, LZH, and ZOO are options to the 
user here. CNet determines which choices to give the users 
here based on which archivers have "pack formats" entered 
for them from the CONFIG program's "archivers..." screen. 

The text file that yank-task creates can be read by using the 
"type" command from the Shell or by using an editor. 

The QWK off-line reader format is a popular way of 
downloading messages. When yank-task uses the QWK 



Subboards 1 79 



format, many files are produced, requiring that users 
MUST choose an archiver from the "EP" command's 
"message bundling" field. If this field is set to "TXT" (no 
archiver, just ASCII text), yank-task will be unable to 
produce a QWK packet. In order to make use of a file that 
is produced in the QWK off-line reader format, one must 
have a QWK off-line reader program. There are 
SEVERAL of these available for the Amiga. Although 
there are newer and more powerful programs, "Q-Blue" is 
one that was used in initial CNet QWK tests. 

Aside from the fact that QWK provides better organization 
and better message reading features, the advantage of using 
QWK is that QWK readers allow the ability to REPLY to 
messages. New posts and even private mail can also be 
written off-line using these QWK reader programs. QWK 
readers use an archiver program to pack the replies into 
packets ending with "REP." 

When the user again connects to the BBS, he may use the 
"QWK" command to upload his "REP" packets. CNet will 
unpack the file(s) and distribute the messages to their 
proper subboards automatically. In order for the QWK 
command to be available, you must designate a "QWK 
reply subboard" as described in the "edit/view subboard 
configuration" section. 

The yank-task must assemble and pack messages into 
"temporary" files before making the packet available to the 
user. The path used to store these files is set using the 
CONFIG program's "yank/qwk packing" field within the 
"paths..." screen. If you have the memory, RAM: is 
recommended to make yank-task quicker and to reduce 
wear on your drives. The maximum amount of RAM 
required can be determined from the settings described 
below. 

There are several ways to restrict user access to the 
yank-task. Each of these is found on the CONFIG 
program's "limits..." screen: 

Maximum yanks: The maximum number of yank-tasks 
which CNet will allow to run simultaneously. This is 
primarily a function of your memory resources. Each 



1 80 CAfef PRO 3 Bulletin Board Service 



yank-task occupies memory for stack and variable space. 
In addition, if your yank-task is configured to use RAM: to 
store its temporary files, make sure there is enough space 
for each yank-task. 

Maximum yank size (KB); This determines how MUCH a 
user can yank at one time. If you use RAM: to store your 
yank temporary files, you can multiply this value by the 
"maximum yanks" to determine how much memory could 
possibly be used. The next two fields determine how many 
of these files can exist on disk at one time, and how long 
they can exist before being automatically removed. 

Days to hold user Yank files: Auto-maintenance is 
charged with the duty of removing yank-files that have not 
been "picked-up" before this designated maximum number 
of days. This feature protects your system from 
accumulating too many of these potentially very LARGE 
files. 

Maximum yank files per user: Usually, one yank file per 
user is enough. The user may download one, and then yank 
again. This field exists so that you can make it possible for 
users to store more than one yank file in their select buffers 
at a time. Remember that each can potentially be 
"maximum yank size." 

Determination of New items and responses 

When you enter a subboard, CNet reports the number of 
"new posts," "new files," "new-response items" (items with 
new responses), and "new" messages addressed to you. 
How does CNet determine what is "new"? Intuitively, a 
"new" message or file would be one that you hadn't yet 
seen. 

If CNet kept one bit of information for each message, for 
each user, the overhead associated with searching, sorting, 
and storing this information could quickly become 
overwhelming. Instead, CNet remembers two dates for 
each subboard, for each user. One date is used as a 
"cut-off date. All messages written after this date are 
considered "new" to a user. The other date remembers 
when the user first entered the subboard during a given call. 
If, during a given call to the BBS, a user enters a particular 



Subboards 1 81 



subboard, that subboard's "cut-off date is replaced by that 
subboard's "first-entered" date when the user logs off. This 
means that when the user calls back and re-enters that 
subboard, everything that was written since he first entered 
the subboard on his previous call will be "new." This 
includes messages that he himself wrote into that subboard. 

The practice of not updating the subboard's "cut-off date 
until the user logs off keeps messages in that subboard 
"new" until the user logs off. However, CNet will only 
prompt the user to "read new messages now?" when 
entering a subboard for the FIRST time during a given call. 

Exceptions to this method of tracking "new" messages are 
found in the "NM" command (described in the next 
section), and the "YA" command (yank new on all 
subboards). Once you have visited a subboard, or have 
used a global command like NM or YA to view messages 
in a subboard, the NM and YA commands will 
IMMEDIATELY "forget" about the new messages in that 
subboard. This feature was put in place primarily to allow 
users to "continue" a NM or YA if the previous one was cut 
short because of BBS limitations (like maximum size of 
Yank file). 

When Scanning or Browsing items, "old" items that have 
new responses (these are called "new-response items") are 
shown with a asterisk (*) next to the date. 

Scanning for new messages and files at logon 

Each new user's "logon macro" is copied from the file 
CNETrBBSTEXT, line 10. By default, this line contains 
the command "NS." This will result in the "NS" (New 
Scan) command to be executed after the user has logged 
on. This command is actually usable from any command 
prompt, but was initially designed to be used at logon. The 
NS command is composed of two component commands, 
"NF" (new files) and "NM" (new messages). Each of these 
component commands is also usable individually from any 
command prompt. 

The NF command searches for subboards containing new 
files. New files here are identified as those uploaded since 
the last use of the NF (or NS) command. CNet performs a 



1 82 CNet PRO 3 Bulletin Board Service 



"Browse" of the new files in each subboard. For the 
duration of the call, the NF command will "remember" 
which files are currently "new." By default, these new files 
are "forgotten" for the NEXT call. At completion of the NF 
command, however, the user is given the option of 
"remembering" the new files for the next call. 

The NM command searches for subboards containing new 
messages. New messages here are identified as those 
written since your last visit to the subboard. Once you have 
visited a subboard, or the NM command itself is used to 
view the new messages in a subboard, the new messages in 
that subboard will be "forgotton" by the NM command. 
This prevents NM from reading (or yanking) the same new 
messages twice. (Note that this works differently from the 
RN and RA commands, where messages are "remembered" 
until the next CALL.) However, if during your call, a user 
on another port writes a message into a subboard in which 
you have already read the new messages, the NM command 
will immediately again recognize this subboard as having a 
new message. 

If one or more subboards is found to have new messages, a 
prompt is given with the following options: 

List: List subboards with a summary of the number 
of new posts, the number of posts with new responses, and 
the number of new messages (posts and responses) 
addressed specifically to you. 

Browse: Browse new items and items with new 
responses. Only new posts will be shown, not new files 
(unless the file has new responses). A RANGE of subboard 
numbers may be given as an argument. 

Read: Read new items and items with new 
responses. Only new posts will be shown, not new files 
(unless the file has new responses). A RANGE of subboard 
numbers may be given as an argument. 

Cancel: Immediately remove the "new" status of 
the subboard without first reading or browsing the 
messages. A RANGE of subboard numbers may be given 
as an argument. 

Yank: Pack new messages for downloading. See 
the section concerning Yank for more information. One 
additional prompt is available when Yanking from the NM 
command. This prompt asks if you would like to "set 



Subboards 1 83 



filters/key words/subboards." The default answer to this 
question is No, and all new messages will be Yanked. If 
you select Yes, this allows you to yank only specific 
messages from specific subboards. A list of the subboards 
with new messages will be displayed, and a prompt 
containing the following commands will be given: 

Abort: abort the yank, return to the NM prompt. 

List: re-list the subboards. 

Sub: toggle the yanking of subboards. Use a range 
of subboards following this command. Subboards 
"unselected" for yank will have the "+" that appears next to 
their names during a List become "-" instead. 

Filter: select words or phrases which, if they appear 
in a message or its header, cause a particular message NOT 
to be yanked. If you choose NOT to have the filter apply to 
ALL subboards, you must again use the Filter command 
but with a range of subboards as an argument. Subboards 
which have the filter applied to them appear with an "f" 
next to their titles during a List. 

Keyword: select words or phrases which MUST 
appear somewhere in a message or its header in order for 
that message to be yanked. If you choose NOT to have the 
filter apply to ALL subboards, you must again use the 
Keyword command but with a range of subboards as an 
argument. Subboards which have the keywords applied to 
them appear with a "k" next to their titles during a List. 

Yank: begin the yank using the chosen filters, 
keywords, and subboards. 

File integrity testing 

Even when using 32-bit CRCs and error correcting 
modems, "corrupt" files sometimes end up in a subboard. 
Perhaps the file was corrupt before it was even transmitted, 
or perhaps it was upload-resumed, and contained some 
erroneous data at the end of the file before it was resumed. 

Each file in a subboard has associated with it a field called 
"integrity check" (editable by using the AT command). 
The four possible states of this flag are "passed," "not 
tested," "not testable," and "test failed." 

CNet uses the DOS archiver programs themselves to 
determine an archive's integrity. CNet issues a DOS 



1 84 CNet PRO 3 Bulletin Board Service 



command to run the archiver program, and monitors the 
program's output. Depending on what is printed, CNet 
makes the determination as to whether the file is OK or not. 

In order for a file type to be testable, that type (the file 
"extension", like .ARC or .SHAM) must be listed in the 
CONFIG program's "archivers" screen. In addition, that 
archiver's entry in the config screen must have values 
entered for the "test format," "test keyword," "keyword 
column," and "keyword line" fields. All of the popular file 
formats have already been entered for you into the default 
CNet configuration. To be able to actually test these file 
types, however, you must insure that the programs PKAX, 
UNARJ, HSCHK, LHA, WARPCK, UNZIP, ZOOM and 
ZOO are available from the Shell path. In case you change 
one of these archiver programs, update to a newer version 
of one of them, or wish to add your own file types to be 
tested, it is important that you understand how the four 
CONFIG fields must be set. 

The "test format" will be used to construct the actual DOS 
command to test a file. For the ZOO file format, the test 
format is 

zoo > %s xNd "%s" 

"zoo" is the DOS name which invokes the archiver 
program. "> %s" is used internally by CNet to re-direct the 
output from the archiver program to a location where it is 
readable by CNet. NOTE that all test format lines contain 
this "> %s" immediately following the name of the archiver 
program-any added test formats MUST contain this 
argument. Next, you enter the arguments necessary to get 
the archiver program to test a file. The filename itself will 
be substituted where the second "%s" appears. To test the 
file "my.zoo" from the command shell you would use: 

zoo xNd "my.zoo" 
Therefore the CNet test format would be: 

zoo>%sxNd"%s" 

The quotations around the second %s (where the filename 
will be substituted) are there in case the filename or path 
contains a space. 



Subboards 1 85 



You must actually look at the archiver's output for a 
GOOD archive to determine the values of the next three 
fields. If these fields are not PRECISELY set, CNet will 
report "failed" when in fact the archive may be OK. The 
ZOO program gives output like this: 

zoo: my .file — OK 

zoo: archive seems OK. 

The "test keyword" field tells CNet what word or phrase it 
should be looking for in the archiver program's output to 
signal a GOOD archive. For ZOO, the test keyword is best 
set to "OK". 

The "keyword line" field tells CNet on which line of output 
to look for the "test keyword." The output "lines" are 
numbered in REVERSE here. The LAST line of output is 
known to CNet as line 0. The next to last line is 1. It is 
valid to specify a number as high as 3 here. For ZOO, the 
keyword line should be set to 0, because "OK" appears on 
the last line of output. 

The "keyword column" tells CNet at which column on the 
keyword line to expect the test keyword. Start counting at 
0. For the ZOO program, the "OK" appears at column 20. 
Notice that there are TWO spaces between "zoo:" and 
"archive." 

File testing either occurs immediately after the file is 
uploaded, during auto-maintenance, or not at all, depending 
on the subboard's setting of its "file testing" field. A file 
may be "manually" tested by a sysop or subboard operator 
by using the 'TEst" command. Files which FAIL the 
integrity check are marked as "(failed integrity check)" 
when they are read. They are marked with a "!" beside the 
item number when they are displayed in an item scan. 
They also appear in the auto-maintenance log (the sysop 
"LA" command). Testable files which have not yet been 
tested are marked as "(not yet tested)" when they are read. 

File transformation 

When you request that your users always upload ".LHA" 
files into your Amiga subboards, ".ZIP" files into your IBM 
subboards, and ".IFF" files into your clip-art subboards, 



1 86 CNet PRO 3 Bulletin Board Service 



should you always expect your users to follow your 
directions? It's not going to happen. Luckily, CNet comes 
equipped with a mechanism for overseeing the 
TRANSFORMATION of files from one "type" to another 
(.ZIP to .LHA for example, or the reverse). 

CNet "transforms" files by using specially constructed DOS 
script files (files containing a "batch" of DOS commands), 
called "xscripts". These script files must use one archiver 
program (pkunzip, for example) to disassemble an archived 
file, and then use another archiver program (lha for 
example) to re-assemble the archive from its component 
files. Properly written transformation script files should 
also deal with error checking, temporary file cleanup, and 
proper operation within a multi-user environment. 

Note: Transformation may be used for many things other 
than simply changing one archive type into another. For 
example, there are many utility programs available for 
changing one graphic format into another. Using this, you 
could create an Xscript to change GIF graphic files into 
IFF, as just one example. 

By default, CNet will attempt to find transformation script 
files for all file types. You may prevent a subboard from 
attempting to transform specific file types by setting the 
subboard's "arcs transformable" field. The numbers in this 
field refer to the numbering of the archivers in CONFIG's 
"archivers..." screen. If a user uploads a file which is on 
CONFIG's list of archivers, but whose number does NOT 
appear in the subboard's "arcs transformable" field, CNet 
will NOT attempt to transform the file. On the other hand, 
if a user uploads a file which is NOT on CONFIG's list of 
archivers, CNet will always attempt to transform that file. 
(Unless file transformation is disabled in that subboard) 

How does CNet decide which script file to use when 
attempting to transform a file? To begin with, each 
subboard has a field called "transform to." You should set 
this field to the 2, 3, or 4 letter file extension to which you 
would first like CNet to attempt to transform all files. Do 
not include the "." in this field. 

CNet first searches for the most specific transformation file 
(one which would transform the file from the existing file 



Subboards 1 87 



type to the "transform to" type), and if not found, looks for 
progressively more general transformation files. If the file 
does not have a 2 to 5 letter extension (the letters following 
a period), CNet assigns it the default extension of "any." 

Here's the order in which CNet searches for a 
transformation file. The word "old" is replaced with the 
file's current extension (or "any" if the file does not have an 
extension). The word "new" is replaced with the 
subboard's "transform to" field. The "data" directory refers 
to the subboard's own "data" subdirectory, found within it's 
"path to data dir" path. Once a file is found, the search 
ends, and CNet attempts to execute the transformation file: 



directory 


script name 


data 


old2new 


data 


old2old 


S: 


old2new 


S: 


old2old 


data 


old2#? 



The last script search attempts to find ANY script file 
which will operate on the existing file type. 

File transformation either occurs immediately after the file 
is uploaded, during auto-maintenance, or not at all, 
depending on the subboard's setting of its "file 
transformation" field. A file may be "manually" 
transformed by a sysop or subboard operator by using the 
"TRansform" command. Files successfully transformed 
appear in the auto-maintenance log (the sysop "LA" 
command), showing both the "new" and the "old" file sizes. 

Each item has a field "transform attempted" which is set to 
"yes" after CNet attempts to run a transformation script for 
the file. You can edit this flag by using the "AT" 
command. Once this flag is set to "yes," auto- maintenance 
will not attempt to transform the file again. By setting this 
flag to "no," you can force auto-maintenance to attempt to 
transform the file again. The transformation script will not 
be ran if the file with the "new" extension already exists in 
the subboard. 



1 88 CNet PRO 3 Bulletin Board Service 



There is a directory on the master CNet disk entitled 
"xscripts." Within this directory are examples of 
transformation scripts. Note that CNet does NOT look in 
the "xscripts" directory to find them. If you choose to use 
one of these files, you must COPY it to the appropriate 
directory (either S: or the subboard's "data" directory). 
Although tested and working, many of these script files 
contain minimal error checking and recovery— they are 
included to provide examples. If you plan to improve upon 
CNet's default transformation scripts, or plan to write your 
own transformation scripts, it is helpful to know what CNet 
passes to the script file as "arguments." There are three 
arguments: 

1. The "new" filename, with new extension attached, 
including the full path. 

2. The "old" filename, exactly as it was uploaded, 
including the full path. 

3. The "core" filename, without an extension or path. 

There are DOS script commands for extracting and making 
use of these arguments. 

Note that byte payback and byte credit values for the item 
are automatically re-adjusted for the item's new size if the 
item's size changes during transformation. Other variables 
already that are already binding may NOT be altered, 
however (such as the byte credits that the user has already 
received if the file was immediately validated). 

Subboard file structure and fragmentation 
considerations 

The subboard's data path should contain a directory "data" 
(this should have been automatically created for you when 
you originally created the subboard). Once messages are 
posted or files uploaded, you will see one or more of the 
following files: 

_text: Contains all posts and responses. This file will 
"grow" in 65536 (64K) increments as necessary to house 
new messages. Killed message areas are tracked so that 
new messages first attempt to fill space once occupied by 
those killed messages. The "fit" of new messages is not 
always perfect, resulting inevitably in fragmentation of the 



Subboards 189 



file structure. There are ways, are described below, to 
periodically "clean" this file and remove and fragmentation. 

_free: Contains structures to track the "killed" portions of 
_text. This file exists at all times, except after the subboard 
reorganization program is used, until there is another 
message created. 

_headers3: Contains BRIEF information about each item 
in the subboard. Just enough information to determine if 
there are new responses to the item and to sort the items by 
date or title. This file's purpose is to allow fast item 
indexing and retrieval. If you have set "keep headers" to 
"headers," this file will be kept in memory after the 
subboard is first accessed. If you have some extra memory, 
it is recommended that you do keep these small files in 
memory. 

_items3: Contains DETAILED information about each 
item in the subboard-full title, creation information, flags, 
etc. Portions of this file are loading on an as-needed basis 
by the BBS. If you set "keep headers" to "headers and 
items," this file will also be kept in memory after the 
subboard is first accessed. 

_message3: Contains a short data structure for each 
MESSAGE in the subboard (items and responses 
individually). This provides quick indexing by message 
author and addressee (as used in the "Scan MESS" 
command). 

_short2: This file contains the short descriptions for 
uploaded file items, if any exist. 

Continuous posting, responding, uploading, and killing will 
eventually result in fragmentation of the _text file. The 
_text and _free files will become much larger than 
necessary, simply because of "short blocks" of free space 
which are left unused. To fix this problem, CNet has a 
utility known as "repair_sub" located in pfiles:maintenance. 
To invoke this program from the current subboard, use the 
RR command. If you have enough memory to hold the 
new _text file in memory, you should answer "yes" when 
asked if you would like to use RAM during the repair 
process. 



1 90 CNet PRO 3 Bulletin Board Service 



Repair_sub is also handy in the event that your subboard 
has suffered some sort of damage (from whatever cause). If 
you notice responses "looping" or titles or headers filled 
with "garbage," it might be a good time to use the RR 
command. Repair_sub will attempt to salvage all 
non-corrupt messages, purging the others. 

Repair_sub can be run as a system event as well. It is a 
"CNet C" pfile, and takes one argument, the RANGE of 
subboards to operate on (the PHYSICAL subboard 
numbers, as displayed from the subboard's EL command). 
It is OK to include physical subboard numbers which 
correspond to direct disk access subboards or 
subdirectories, repair_sub will skip them. So, for example, 
if you want repair_sub to repair all of your subboards on the 
first of every month at 3 am, add a system event with the 
date set to "1," the time set to "300," the command set to 
"Run CNet C" and the arguments set to 
"pfiles:maintenance/repair_sub 0-255" (replace the number 
255 with your highest physical subboard number, as taken 
from CONFIG's "max UD/BASE subboards" setting). If 
you want repairjsub to operate on only specific subboards, 
use a range of those subboard numbers separated by 
commas. 

Other subboard maintenance options and 
considerations 

As messages are posted, they are assigned a serial number 
unique to that subboard. This serial number is essential to 
the proper look-up and indexing used by various 
commands. Normally, this serial number is automatically 
incremented as necessary. If, however, you do any direct 
manipulation of subboard data files, such as moving all data 
files from one subboard to another, you should consider this 
serial number. It is shown as "last message serial number" 
on the EL screen. It is OK to set this number HIGHER 
than it should be. It is NOT a good idea to have this 
number LOWER than it should be, as serial numbers will 
then be repeating, causing confusion. 

Another thing to be aware of is that when items are killed, 
they are not purged from the subboard data structures until 
auto-maintenance (amaint) runs. Thus, if a subboard is full 
(maximum number of items reached), simply killing an 



Subboards 191 



item will NOT alone make room for a new one--amaint 
must first operate. Furthermore, in order for amaint to 
operate, it needs exclusive access to the subboard. If there 
are users in a subboard when amaint attempts to lock it, 
amaint will skip that subboard. If users attempt to enter a 
subboard while it is locked by amaint, they will be told that 
the subboard is temporarily locked. 

Amaint is also responsible for the execution of many other 
subboard options. The "amaint inactive days" setting is 
used by amaint to purge old items automatically after a 
given number of days of inactivity. To be considered 
"active" a file must have been downloaded, and a post must 
have been responded to within the specified number of 
days. In the case of network subboards, amaint uses for 
comparison the date the message was "imported" to your 
system, not the date that the actual message was written. 

The "auto-free after days" setting is used by amaint to give 
items "free" status automatically after a given number of 
days since uploading. 

File testing and transformation occur during amaint, unless 
you have the flags set differently for the subboard. 

The "purge old responses" flag causes amaint to delete old 
responses from items, even though the items themselves 
might be considered "active." This feature uses the same 
"amaint inactive days" in determining which responses are 
killed. 

By setting the "amaint adopt orphans" flag, you can have 
amaint automatically search the subboard 's partitions for 
orphan files, and add them to the subboard. This could be a 
handy feature in the case of fidonet file networking. 

By setting the "default purge status" flag to "©Amaint", 
you can have all new posts and responses immediately 
marked for deletion at the next run of amaint. This might 
be useful for "temporary" file transfer areas. Another use 
of this flag is in private file transfer bases where it would 
be appropriate to purge the item at download (a setting of 
"@DL"). The item is not immediately killed, but its status 
is changed to "©Amaint" and actual deletion happens then. 



192 CNet PRO 3 Bulletin Board Service 

Notes: 



The Text Editors 193 



CHAPTER 10 - The Text Editors 

In many ways, life on a BBS REVOLVES around its text 
editors. An editor is the tool you use to "input" messages, 
descriptions, and configuration files while on the BBS. 
CNet has two built-in message editors and one built-in 
"ANSI" editor. Using the CONFIG program's "editors..." 
screen, you can add "external" (stand-alone) editors. 
Consult the CONFIG chapter for more information on this 
procedure. This chapter will describe CNet's built-in 
editors, and CNet's powerul Message Command Interpreter 
(MCI). 

A user may choose his default editor using the EP 
command. The default maximum number of lines of text 
that a user may enter in the editor depends on the user's 
"editor lines" field. However, many BBS features have 
their own (lower) limitations on editor lines. 

The Line Editor 

The oldest and most basic of editors is the "line editor." 
This is the DEFAULT editor for new users. To use this 
editor, users may use "dumb" terminals-terminals or 
terminal emulation programs which do not understand 
cursor positioning, text manipulation, or other "ANSI" 
commands. There is never a need to even TOUCH the 
"control" key. 

Whether posting, responding, leaving mail or feedback, 
describing a file, or editing the user dictionary or network 
alias list, a user is in the line editor when he sees: 



(Net/3 Lificldifor; 

Enter up to 251 Un«s — enter ,H at cotutm I for- Help, or ,S to Sw. 

Dirty press CNIER whw besimrtng a runs paragraph. 



At this point, you may type freely, using the TAB, ENTER 
and BACKSPACE keys to do simple formatting and error 
correction. Word wrapping within paragraphs is done 
automatically. When you are done, make sure you are at 
the beginning of a new line, and then press the PERIOD 
key (.) then the letter S, and then press ENTER. That's the 
easy way to enter text. However, there are dozens of other 
"dot" commands available to perform convenient functions. 
They are called "dot" commands because they all begin by 
pressing a PERIOD at the beginning of a new line. 



1 94 CNetPRO 3 Bulletin Board Service 



To actually place a period into the text at the beginning of a 
line, type a second period. The prompt will be replaced by 
a period. 

For most commands, especially those that will irreverisbly 
alter text, the Editor will wait for you to press ENTER 
before it actually does anything. This give you the 
opportunity to cancel the command by pressing the 
backspace key. 

Here are descriptions of the available dot commands. The 
"defaults" given are what happens when you use the 
command with no additional argument: 

.A Abort. All new text and changes will be lost! 

.B Border. Put any character around the text-above, 
below, and on both sides. This command is really only 
useful on pre-centered, non-word-wrapped text. Using it in 
any other way may cause characters to be chopped from the 
ends of lines. 

.C Copy. The range of lines that you specify will be 
copied to the end of the text. If you are in insert mode (.1), 
the lines will be copied to the insert point. This command 
defaults to ALL lines. 

,D Delete. The range of lines that you specify will be 
removed from the text. This command defaults to the 
LAST line. 

.E Edit. You will be given the chance to re-enter each 
line that you specify. Hitting ENTER on a blank line will 
keep the line as-is. You can use the .X command to get out 
of edit mode. This command defaults to the LAST line. 

J 5 Find, After you enter a range of lines, you will be 
prompted for a phrase to locate. The phrase may not be 
broken between two lines. The line editor will report the 
line number(s) where the phrase appears and the number of 
occurrences on each line. The search is not case sensitive. 
This command defaults to ALL lines. 

.G Get. Sysops may use this command to specify a 



The Text Editors 195 



path and filename to read into the editor. Text will be 
inserted at the end of the text, or at the insert point if insert 
mode is active (.1). 

M Help. Display a brief summary of commands. 

.1 Insert. Enter the line number where you wish to 

begin inserting text. If you do not specify a line number, 
inserting will occur at the BEGINNING of text. 

J Justify. Several types of justification are supported: 
"Pack" removes extra spaces. 
"Expand" will add spaces between words to make lines 

'flush' with the left and right margins. 
"Indent" adds a space to beginning of lines. 
"Un-indent" removes a space. 
" Center" moves lines to the middle of the screen. 
"Left" removes all spaces from the beginning of lines. 
"Right" adds spaces to the beginning of lines until text 

is flush against the right margin. 

.K Replace. This command operates exactly like Edit, 
except that pressing ENTER on a blank line will ERASE 
that line. 

.L List. Display lines of text with line numbers. MCI 
commands are not interpretted here. This command 
defaults to ALL lines. 

M MCI read. Display the text exactly as it will appear 
to people reading the message. All MCI is interpretted, and 
a header is displayed. This command defaults to ALL 
lines. 

.N New. All text and changes will be lost! The editor 
will be re-started. 

.0 Line numbers. Toggle the display of line number 
prompts on and off. 

.P Put. A sysop may specify a path and filename to 
which to save the text. If the specified path begins with a 
"+" CNet will APPEND the text if a file already exists with 
the given name. 



1 96 CNet PRO 3 Bulletin Board Service 



.Q Quote. If you are replying to a message, the Quote 
command will allow you to insert lines from the original 
message into your reply. The initials of the original 
message's author will be placed at the beginning of each 
quoted line. 

,R Read. Display text using word wrapping. Line 
numbers are not displayed. MCI commands are NOT 
interpretted. This command defaults to ALL lines. 

.S Save. Use this command to save the text (send the 
message) when you are ready to accept what you have 
entered. 

.T Toggle. Add or remove the "carriage returns" from 
the ends of lines. CNet remembers where you pressed the 
ENTER key. When you use the List command, the "\" 
character will show at the ends of lines where you pressed 
ENTER. See the discussion of paragraph formatting to 
follow. 

.V Visual. Move to the visual editor. Remote callers 
must be using an ANSI terminal with 80 columns width. 
See the section about the visual editor to follow. 

.W Word-wrap. Turn off or turn back on the automatic 
word wrapping feature. Without word-wrapping, you must 
press ENTER to reach the next line. All lines will then be 
marked as having carriage returns. 

.Z Zip. Send a text file to the BBS using an error 
checking "ZIP" file transfer protocol. Although it is 
possible to simply "dump" a terminal program's buffer 
directly into the editor, problems with word-wrapping arise 
and may cause "garbage" to appear. The Zip command 
allows you to use Xmodem or ASCII protocol to bring a 
file safely into the editor. 

.> Margin. This command can be used to temporarily 

alter the right margin used for text entry, justification, and 
borders. 

.$ Search and replace. This command operates 
similarly to Find, except there is one additional prompt for 



The Text Editors 197 



the "replace with" text. CNet will only be able to replace 
text on lines with enough room (if the replace text is longer 
than the search text). 

.* Command. Allows the user to enter any of the 
"available anywhere" BBS commands like WHO, 
STATUS, TIME, OLM, etc. without closing the document 
or leaving the editor. 

Automatic Paragraph Formatting System 

One very important concept to be aware of while in the 
editor is how CNet handles paragraphs. CNet has been 
designed to automatically format messages for the current 
user's column width to avoid broken words at the end of 
lines, regardless of how the message was written. In order 
for CNet to effectively accomplish this, it must know where 
your paragraph breaks are. If you are at the end of a line 
and have not finished a paragraph, continue to type, and 
C-Net will automatically "wrap" your word to the next line. 
Only press the ENTER key when you are about to begin a 
new paragraph. You can manually alter paragraph 
boundaries by using the .T command. You can view the 
position of existing'paragraph boundaries by using the .L 
command. 

Experiment by entering a couple of short lines, maybe one 
or two words each. Use the .T command to remove their 
paragraph markers. Read the message. Notice how CNet 
will "pack" text to fill the screen. 

This system was originally designed to account for the 
differences between the old 40 and 80 column screens. 
Now that 80 column terminals have become prevalent, 
there are still many benefits of the automatic paragraph 
formatting system. For example, automatically indented 
text will always appear correct. The paragraph boundary 
markers are also essential to the operation of the visual 
editor. 

Control Keys 

Although it is possible to get around in the line editor 
without ever touching the control key, advanced users will 
appreciate knowing that several control key commands DO 



198 CNet PRO 3 Bulletin Board Service 



exist here. ( A just reminds you to hold the control key 
before pressing the command letter). 

A B Move to the beginning of the line 

A N Move to the end of the line 

A D Delete character under cursor 

A K Delete to the end of line 

A T Move left 1 character 

A U Move right 1 character 

A W Move left 1 word 

A R Move right 1 word 

A V Verify (reprint) text so far 

A X Cancel line (start over) 



The Visual Editor 

CNet's visual editor was designed to provide 
"word-processor-like" power to on-line editing. The visual 
editor requires ANSI terminal support of cursor movement, 
cursor positioning, and simple text insertion and deletion 
commands. The visual editor should be used only with an 
80 column display, but can used with any number of screen 
rows (make sure your setting in the ET command matches 
your actual terminal size). The visual editor supports full 
paragraph formatting and wrapping automatically. The 
visual editor shows you the subject and the addressee (if 
there is one) at the top of the page. On the local console 
screen, the visual editor shows you the cursor row and 
column position. 

To get to the visual editor from the line editor, use the line 
editor's .V command. To set the visual editor as your 
default editor, use the EP command. 

All visual editor commands are CONTROL commands, and 
are accessed by holding down the control key and then 
pressing the appropriate command letter. Control keys are 
shown as having " A " before the command letter. Many of 
the visual editor's commands have their own menus, and 
require you to press an additional key. In all cases, this 
secondary key is NOT a control key. The commands are as 
follows: 



The Text Editors 199 



A A: Page up. 

A B: Beginning of line. 

A C: Command. Enter a BBS command. The command 
must be a "global" command like WHO, OLM, 
TIME, etc. 

A K: Kill from the cursor to the end of the line. 

A N: End of line. 

A 0: Bottom of document. 

A P: Preview. Read your message with MCI 

interpretation and message header, exactly as it will 
appear when read by other users. 

A R M: Range/Mark. Set the beginning point for Copy, 
Kill, and Paste. 

A R C: Range/Copy. Copy the text between the last 

marked point and the current cursor position into 
the Paste buffer. 

A R K: Range/Kill. Delete the text between the last marked 
point and the current cursor position. The text will 
also be copied into the Paste buffer. 

A R P; Range/Paste. Insert the paste buffer at the current 
cursor position. The paste buffer contains what was 
last Copied or Killed. 

A S: Search. Case is not important here. The visual 

editor will remember what was last searched for and 
use that as a default search string. 

A U. Top of document. If the cursor is not already at the 
top of the screen, the first use of control-U will 
move the cursor to the top of the screen. 

A V: Verify screen. Re-send current screen. 

A X A: Abort. A verification prompt is given. All text and 
changes will be lost. 



200 CNet PRO 3 Bulletin Board Service 



A X C: Check spelling. In order for the spelling checker to 
function, the files "diet" and "dict.index" must be 
found in the dictionary-path as specified from the 
CONFIG program's "paths..." screen. If you have 
the RAM to spare, it is highly recommended that 
you place the dictionary files and dictionary path in 
RAM. Two maintenance programs "dict_expand" 
and "dict_pack" have been provided. Used from the 
Shell, these programs can be used to unpack and 
pack the "diet" file, allowing permanent 
customization. CNet's spelling checker offers a 
"guess" function utilizing the SoundEx routines. 
The spelling checker also has the ability to "learn" 
into user custom dictionaries. Users may edit their 
custom dictionaries by using the EP command. You 
may control the number of words each user may 
"learn" by changing the user field "dictionary 
entries." 

A X D: Draw editor. A simple ANSI sequence editor. 
Described in the next section. 

A X G: Get. System operators may use this command to 
read a file into the editor from any path and 
filename. 

A XH: Help. A one-page summary of the visual editor's 
commands. 

A XL: Line editor. Return to the line editor. 

A X N: New. Option to re-start the visual editor. All text 
and changes will be lost. 

A X P; Put. System operators may use this command to 
save the editor's text into any file in any path. 

A X Q: Quote. If you are replying to a message, this 

command can be used to insert the original text into 
the editor at the current cursor position. If you are 
responding to a post, you are prompted for the 
response number you are quoting (the default is the 
one you've most recently read). Each "quoted" line 
will begin with the initials of the original message's 



The Text Editors 201 



author. Because CNet normally displays messages 
in subject order, it is usually NOT a good idea to 
quote the entire message. Once the message has 
been inserted, use the control-K command to 
selectively kill lines. 

A X S; Save. Accept what you have written and enter it 
into the BBS. 

A XZ: Zip. Use Xmodem or ASCII protocol to insert text 
into the editor. 

A Z: Page down. 

CNet's visual editor was designed to take advantage of all 
of the ANSI specification's efficient text manipulation 
commands for insertion and deletion. If your terminal 
program can also take advantage of the full power of ANSI, 
use the ET command to make sure "ANSI support" is set to 
"full." If, on the other hand, your terminal program does 
not "know" the more efficient ANSI text commands (you 
will know this if the visual editor appears to operate 
incorrectly), then use the ET command to set "ANSI 
support" to "simple." 

mi ink mi i • t 

The Draw Editor 

The draw editor provides CNet with a simple yet powerful 
built-in "ANSI sequence" editor. The draw editor may be 
used to design menus, screens displays, and other drawings. 
The two basic features of the draw editor are WYSIWYG 
and sequencing. WYSIWYG or "what you see is what you 
get" means that you can change colors and text attributes 
and position the cursor in any way you like, knowing that 
how you see the screen is exactly the way users will see the 
screen when reading the draw editor file. MCI commands 
and "preview" modes are not necessary to re-create actual 
viewing circumstances. Sequencing means that the draw 
editor remembers the ORDER in which you create the 
screen, and re-draws the screen in exactly that order when 
the file is displayed. This means that "animation" is 
possible and easy to create with the draw editor. To 
animate something, draw it, draw it again in its new 
position, then use the space bar to "erase" the first drawing. 



202 CNet PRO 3 Bulletin Board Service 



When using a local port, the total number of sequence steps 
is shown at the top of the screen. Also, because it is 
possible to move through the sequence steps individually, 
the' "current" sequence step number is also shown. 

There are a number of control key commands available in 
the draw editor. Control keys are shown as having " A " 
before the command letter. Many of the draw editor's 
commands have their own menus, and require you to press 
an additional key. In all cases, this secondary key is NOT a 
control key. The commands are as follows: 

A A; Move BACK one step. When "undoing" a step, 

CNet has a "memory" of what was replaced at that 
screen position. Note that when you are not at the 
final sequence step, all new steps are "inserted" into 
the sequence. 

A K: Kill. Delete all steps after the current step. That is, 
make the current step the LAST step in the 
sequence. 

A N: "Shift" in and out. When the draw editor is 

"shifted-in," the high bit of every typed key is set. 
This "re-maps" the keyboard to allow you to enter 
graphic and symbol characters. 

A P: Play. The sequence is re-drawn from the beginning. 
You are prompted for a DELAY between steps. 
This allows you to "slow things down" to get a 
better view of what is happening. You are also 
prompted for a final step number. This allows you 
to "set" the "current" step number. 

A T: Text. Change the attributes of new steps. A menu 
appears with the options Bold, Intense, Reverse, 
Underline, Color, Field, and Normal. Bold, intense, 
reverse, and underline toggle between Yes and No. 
Color and field allow you to set the foreground and 
background colors, respectively, to a value ranging 
from to 7. Normal allows you to instantly set 
bold, intense, reverse, and underline all to No. 

A V: Verify. Re-display the current display as quickly as 
possible. 



The Text Editors 203 



A X A: Abort. Exit without saving changes. 

A X H: Help. Provide a one page quick summary of all 
commands. 

A X S: Save. Save changes and exit the draw editor. An 

option is given to use "absolute" cursor positioning. 
Absolute cursor position means that the exact X and 
Y coordinates of steps will be saved to the file. If 
absolute positioning is not used, positioning will be 
performed "relative" to the each current cursor 
position. That is, the "distance to move" between 
steps in the X and Y directions will be saved to the 
file. If you are designing an entire-screen display, 
you will want to use absolute cursor positioning. 
Selecting absolute cursor positioning will also 
automatically clear the screen at the beginning of 
the sequence. If you want text and animation that 
will "flow" with what is currently on a screen, you 
want to use relative cursor positioning. Selecting 
relative cursor positioning does NOT clear the 
screen before displaying the sequence. 

A Z: Move FORWARD one step in the sequence. 
The Message Command Interpreter (MCI) 

The Message Command Interpreter (MCI) is one of 
C-Net's more powerful features. It allows users to insert 
"command sequences" directly into messages. These 
command sequences are interpreted by CNet when the 
message is later read. These commands include changing 
colors, moving the cursor, and many other useful utilities. 

In CNet/3, MCI commands begin with CONTROL-Q. 
When you press CONTROL-Q in the editor, CNet will 
print the character "{" (a left curly brace). Immediately 
following this, you must place the desired MCI command 
character, then the appropriate arguments, ending the 
command with the character "}" (a right curly brace). For 
example, {cl } will change the text output color to Red. 

In order to maintain some visual continuity with older 
versions of CNet, you may optionally use the 
CONTROL-Y key to display a special character "\". 
Following the \ character, you MUST place a command 



204 CNet PRO 3 Bulletin Board Service 



letter and an argument character. For example, instead of 
{cl}, \cl can be used to change the text output color to 
Red. 

NOTE: Remember that the { and \ characters in MCI 
commands are produced using the special keys 
CONTROL-Q and CONTROL-Y, NOT the actual \ and { 
keys on the keyboard! 

Access to MCI commands is divided into three categories: 
SYSOP ONLY, LEVEL 1, and LEVEL 2. Access to 
sysop-only commands requires the system operator 
privilege flag. Access to level 1 and level 2 commands 
requires the "MCI level 1 " or "MCI level 2" privilege flag, 
respectively. Two lines in BBSTEXT are used to 
determine which commands belong to which "level." 
BBSTEXT line 4 contains commands which are "sysop 
only." BBSTEXT line 5 contains commands which are 
"level 2." All other commands are then by default "level 
1." In the descriptions to follow, the commands which are 
by default level 2 are marked with "(2)" and the commands 
which are by default sysop-only are marked "(s)". 

Within the editor, users are able to enter any MCI command 
they wish. Once an MCI command is entered, CNet will 
check the user's access. If the user does not have access to 
that MCI command, CNet will change the control-Q to an 
actual text "{" or the control-Y to a "\". In this way, the 
command will not be interpretted, but will still appear 
visually the same as the "real thing". 

Following are the MCI commands: 

{@n} Set MCI environment variables 

n= reset MCI environment settings (except n=8) 
n= 1 disable further MCI interpretation (all codes 

PRINTED) 
n= 2 disable word wrap-around 
n= 4 disable the More? pause temporarily 
n= 8 disable sysop-only MCI commands (cannot be 

reset) 
n=32 ENABLE SkyPix pseudo-ANSI commands 
n=64 DISABLE Text Translation (use when 

sending system-specific text files, like 

C64/128 screens). Screen output, MCI, and 

ALL formatting is suppressed. 



The Text Editors 205 



To set multiple items, add their values ( for 1,2,4, use 7 ). 
All codes are reset at the end of the current file or message. 

{:n} Set the automatic indentation of text 
n= disable indentation altogether 
n= 1 return to default indentation (sysop defined) 
n= 2 set indentation to occur at the current cursor 
position 

{An} Disable message abortion using the SpaceBar or the 
/ key. (s) 

{Bn} Print n Bells (beeps) 

{Cn} Change the cursor color to #n. 

0=black l=red 2=green 3=yellow 4=blue 
5=purple 6=cyan 7=white 

Color codes 8,9,a,b,c»d,e, & fare INTENSE 
versions of the first 8 ... visible on 16 color 
terminals only. 

Move cursor to home position 

Move cursor to home position and clear screen 

Wait for a key press. The key will be placed into 
MCI string variable n (70+n). (2) 

{Hn} Print n backspaces. 

{In m} Input a line. Result will ALWAYS be placed in 

variable 70. (2) n= input options (may be summed) 
all caps 

FILENAME ... don't allow =:;"/* 
chop leading spaces 
force 1st letter of each word uppercase 
force all others letters lower case 
numeric input only 
print input box (.) 
allow MCI control-A/C 
HANDLES ... don't allow A _'{l}~@ 
Don't allow spaces 
Don't allow cursor movement 

m = length of input (default is 40). 



n = 


1 


n = 


2 


n = 


8 


n = 


16 


n = 


32 


n = 


64 


n = 


128 


n = 


256 


n = 


512 


n = 


16384 


n = 


32768 



206 CNet PRO 3 Bulletin Board Service 



{ J A n} Jump to label #n unconditionally. 

(JE n) Jump to label #n if last TEST was EQUAL. 

( JG n J Jump to label #n if GREATER THAN. 

(JL njJump to label #n if LESS THAN. 

{ JN n] Jump to label #n if NOT EQUAL. 

By specifying a label which does not EXIST, it is possible 
to effectively EXIT the message. 

{n} An MCI command which consists only of a 

NUMBER is a LABEL. LABELS are used to "mark 
a spot" in a message. LABELS are used with the 
MCI "Jump" commands above. 

It is legal to jump "backward" to the 20 most recent labels. 
The reverse branching will only be effective when the 
message is READ FROM DISK, and will not occur when 
reading the message in an editor. 

By placing the special character + after the label number 
(like {JA 2+}), it is possible to force CNet to only branch 
forward. This is useful in situations where you re-use the 
same label number. 

{Kn} Kolorific mode on/off. When enabled, the text 
color will be changed automatically as each 
character is printed. 

{Ln m}Load the variable specified by V with contents of 
'm'. N and m may be any legal GETUSER 
specifications. M may also be a "literal" by placing 
the special character # before text or numbers, (s) 

(L60 61 } Copy contents of register 1 into 
{L21 #100} Set user's game points to 100 

Use EXTREME caution with this command. Memory can 
easily be corrupted to the point of system failure if used 
indiscriminately. 

{Mn x..} Perform MATH functions on the variable 

specified by n. This MCI command can be used ttv 
add, subtract, multiply, divide, and mod (find "*"-* 
remainder). Arguments may be variables, literals, 
or one of the special characters +, -, /, *, or %. (s) 



The Text Editors 207 



Arguments must be entered in RPN, Reverse Polish 
Notation. That is, specify the operands, and THEN the 
operators. 

(M60 #1 + } Add 1 to MCI register 

{M60 24 #3 / +} Add 1/3 of the current CPS rate to reg 

Calculate your gas mileage without leaving the editor! 

{Nn} Print n NewLines 

{On} Set FLASHing text (Commodore C/G) or BOLD 
text (ANSI) 

{Pn} Set Print Direction. 
n=0 normal printing 
n=l print each character, backspace, then the 

character again 
n=2 print upward 
n=3 print downward 
n=4 print backwards 

(Q0| Re-send all current ANSI settings 

(Q 1 } Cancel all active MCI modes (colors/printmodes, 

etc). 
(Q2J Remember current ANSI settings 
{Q3} Recall last remembered ANSI settings 

{Rn} Set REVERSE video on/off 

{Sn} Set the number of 1/50 seconds to pause between 
characters. (2) 

{Tn m}Test a variable or literal against another. Results 

may be interpreted using the {J} commands. N and 
m may be any legal GETUSER specification, as 
detailed under the {V} command, (s) 

In addition, you may specify "literal" text or numbers by 
using the special character #. Here are some examples: 

{T60 61 } Compare the MCI numeric register with 
register 1. 



208 CNet PRO 3 Bulletin Board Service 



{T60 #1 } Compare the MCI numeric register to the 

number ' 1 ' 
{T70 #Y} Compare the MCI string register with "Y" 

When comparing strings, variables are compared 
case-insensitive. Also, the special character ' may be used 
IN PLACE of # to determine whether one variable appears 
within (instr()) another, instead of strict equality. 

{Un} Set underline mode on/off. 

{Vn s} Display a system variable. N may be any valid 
GETUSER specification. The special numbers 
60-69 correspond to the MCI numeric registers. 
The special numbers 70-74 correspond to the MCI 
string registers, (s) 

If the optional argument Y is specified, it must be of the 
form %n.ms ... a 'C style format command. Alternately, 
Y may be the special character 'c' followed by a field 
width. The variable will be displayed CENTERED within 
a field of spaces of the specified width. 

{Wn} Wait for n seconds to pass. (2) 

{XM n} Replace MCI character register (70) beginning 

with its nth character. Similar to BASIC MID$(), (s) 
{XL n}Replace MCI character register with its leftmost n 

characters. Similar to BASIC LEFT$(). (s) 
{XR n} Replace MCI character register with its rightmost 

n characters. Similar to BASIC RIGHT$(). (s) 
{XP} Replace MCI character registers and 1 with the 

PARSED version of MCI character register 0. Text 

is parsed at the first space, (s) 
{XS} Store the SIZE (strlenQ) of MCI character register 

into MCI numeric register (60). (s) 

{Zn} ANSI users, change Background color to n (same as 
C colors). 

{ A n} Move cursor up n lines. 

{!n} Move cursor down n lines. 

{> n} Move cursor to the right n spaces. 



The Text Editors 209 



{<n} Move cursor to the left n spaces. 

{-n} Insert n characters at cursor position. 

{*n f} Display file with path/name given by f. 'n' will be 
OR'ed with the current MCI environment (see '©'). 
(s) 

(#n f} Run a program file with path/name given by f. (s) 
n=0 for an AREXX program, 
n=l for AREXX w/exclusive access. 
n=2 for a CNet C program, 
n=3 for C w/exclusive access. 
n=4 for a DOS program 
n=5 for DOS w/exclusive access. 
n=6 for a Paragon program 
n=7 for Paragon w/exclusive access. 

{$ f} Send AmigaDOS command specified by f. (s) 

{+ s} Write string specified by Y to the call log. (s) 

{& s} Perform BBS command specified by Y ... must a 
'system' command like Time, Who, Chat, etc. (s) 

{% d} Set the user's time remaining to (hang-up) if the 
current date is less than the date specified by 'd' in 
the format dd-mm-yy. (s) 

{?n} Wait for a Yes or No response (used in BBSTEXT 
for prompt lines) n=0 for default [No], n=l for 
default [Yes]. The response is ALSO placed in 
MCI string register (variable 70) as "1 " or "0". (s) 

{=n} May be used to replace {?n} in BBSTEXT. Lines 
which contain {?0} or {?1 } in BBSTEXT are 
prompts for Yes/No answers, with defaults of No 
and Yes, respectively. You may FORCE an answer 
using this command. {=0} will skip the prompt, 
automatically returning "No" to Cnet. (=1 } will 
skip the prompt, automatically returning "Yes" to 
CNet. (s) 



21 CNet PRO 3 Bulletin Board Service 



The Visual Data Editor (VDE) 

CNet's Visual Data Editor (VDE) is not a text editor like 
the line and visual (ANSI) editors. The VDE was designed 
to allow quick editing of BBS data sructures. The VDE is 
used whenever the EA or EG commands are used to edit 
users and access groups, and whenever the EL or AT 
commands are used to edit subboards or items. 

In order to use the VDE remotely, you must use an ANSI 
terminal, preferably with color. In addition, because ANSI 
cursor positioning and drawing requires more data to be 
moved over the modem, it is recommended that only a high 
speed (9600 baud or higher) modem be used. 

When in the VDE, the arrow keys may be used to move 
around to the various field titles. To edit a field, press the 
return key. When finished editing that field, press return 
again. Many of the line editor's "control keys" are 
available for power editing here. If there is already text in 
the field, the text will be highlighted. Typing backspace or 
the space bar will delete or add to the current text. Messing 
any other key will "type-over" the current text. Fields 
which lead to other screens are marked with "> > ." In 
normal VDE operation, "un-editable" fields are 
"ghosted"-shown in black on blue instead of white on blue. 

The VDE may be used to edit MULTIPLE groups, users, 
subboards, or items at one time. This is accomplished by 
specifying a RANGE of numbers following the EA, EG, 
EL, or AT command. When in multiple-item editing mode, 
ALL field will appear ghosted. When you edit a field, it 
will become un-ghosted. When you exit and select to save 
changes, only the un-ghosted fields will be applied to ALL 
items that you are editing. 

Control-X may be used to immediately exit a VDE screen. 
Control- V may be used to verify (re-display) the current 
VDE screen. 



72ie "List " Subsystems: PFiles, GSles, and News 21 1 



CHAPTER 11 

The Pfiles, Gfiles, and News File Areas. 

The term "Pfile" is used throughout CNet literature to 
denote a "program" file. A Pfile is any special game or 
utility program that you would like to make available to 
your users "online" during their call to your BBS. Pfiles do 
not necessarily have to be written specifically for CNet. 
They may be in DOS Shell, CNet specific compiled-C, 
AREXX, or "paragon" format. You will find that most 
other BBS packages will refer to Pfiles as "doors" or 
simply "on-line programs." A special area of the BBS is 
set up for users to select Pfiles they wish to use from a list. 
The "P" command from the main prompt is used to get to 
the Pfiles prompt. 

The term "Gfile" is used throughout CNet literature to 
denote a "general text" file. A Gfile is any file which is 
"read" to the user. It may be straight out text like a 
documentation file for a game, an information file, or a 
story or joke. It may also contain ANSI and MCI codes to 
create color displays or animation sequences. A special 
area of the BBS is set aside for for users to select Gfiles 
they wish to view. The "G" command from the main 
prompt is used to get to the Gfiles prompt. 

Although separated for logical convenience, the Gfiles 
areas and Pfiles areas may each contain any combination of 
Gfiles and Pfiles. This allows you to include 
documentation files among your Pfiles, and to include 
executable files among your Gfiles. 

The News Files area is used to store messages to be 
displayed as soon as users log on. News files are 
sometimes (and confusingly) called "bulletins" in other 
BBS packages. At log on, CNet will only display news 
files which are "new" since the user's last call to the BBS. 
The News Files area may hold any combination of Gfiles 
and Pfiles. The "N" command from the main prompt is 
used to get to the News prompt. 

The prompt and command structure of the Pfiles, Gfiles, 
and News File areas are identical. Everything in this 
chapter applies to all three areas except where explicitly 
noted. 



212 CNet PRO 3 Bulletin Board Service 



Adding Items 

There are three ways to add items to a Pfiles, Gfiles, or 
News list- Add, Adopt Orphans, and Post. 

Add: Use this command to quickly add a single item that 
can already be found on your system. You must specify the 
type of item, either Text, Arexx, DOS, Paragon, or CNet. 
In the case of a Pfile, if the type of file (Arexx, DOS, 
Paragon, or CNet) is not apparent from the file's 
documentation or appearance, you may have to use the 
information found later in this chapter to make a 
determination. Once you have selected the type of file, you 
are then immediately taken to the item edit screen (see the 
next section). Set the "DOS filename" to the path and 
filename of the item. Set the "description" to the text that 
you would like users to see on the list when referring to this 
item. 

AO: Adopt Orphans. This command allows you to 
search and select files from any system directory. You 
must only specify the path to search. You will not be 
prompted to re-add files which are already on the current 
list. For each file you select, you must select a file type, 
either Text, Arexx, DOS, Paragon, or CNet. Once you have 
selected the type of file, you are then immediately taken to 
the item edit screen (see the next section). The DOS 
filename will have been set automatically. Set the 
"description" to the text that you would like users to see on 
the list when referring to this item. The number of items 
that may be selected at one time is limited by the CONFIG 
program's "max selected files" setting. 

P: Post. This command allows you to quickly write a 
Text file (Gfile) into the current list's directory. You are 
taken immediately to the item edit screen (see the next 
section). Set the DOS filename to a unique name (unlike 
any other on that list). Set the description to the text that 
you would like users to see on the list when referring to this 
item. After the DOS filename and description have been 
set, you are then taken to the editor to write the text file. 
You will find the Post command most useful when writing 
News messages. 



The "List" Subsystems: PFiles, Gtiles, and News 213 



Editing Items 

A visual data editor (VDE) screen is used to edit 
"attributes" of an item. You are automatically taken to this 
screen after using the Post, Add, or Adopt Orphans 
commands. To return to this screen at any time, use the 
"AT" command, followed by the item's number. By 
specifying a RANGE of items, it is possible to edit the 
attributes of more than one item at a time. When editing a 
RANGE of items, all of the fields on the VDE screen will 
appear ghosted (black on blue). When you edit any 
ghosted field, it will become highlighted (white on blue). If 
you save your changes, the contents of all highlighted fields 
will be applied to each item you specified. The fields 
available on this screen are: 



(Net 8 1198-53 PS li'JtoSellKk 



I t«v type 



I CNet C 



"OS filMffle; PfUMiQanB/OtobaUhsfnomKlearJar 
escriptUn : Nuke 'ml Is it a gaHe? Get into your fallout shelter, 
rgunents I JH m 



tags required 
ost date 

ten use rate* 
ebit daily tint 
jsabjeHCl - 
««te mm 
ittklf Wlx 



1?-Dec-93 mi hw Me 

8 Tien disabled 

No One user at I V\m 

No ftstiMs wrd-wrsp 

Yes UuUe iysop HCI 

Ik PeWU mm purisd 



m~M~m 88! 89 

Ho 

Ho 

Yes 

Yes 

Ho 



DOS filename: the actual path and filename of the item. If 
a path is not specified, only a filename, CNet will expect to 
find the file in the list's directory. 

Description: any text that you would like displayed to 
users when they use the Scan command to list the available 
items. 



Arguments: for pfiles, the extra information that you 
would like to pass as arguments. Use spaces to separate 
arguments. If a specified argument begins with a 
percentage sign (%) followed by a number, CNet will 
interpret this number as a "GETUSER" value, and will 
substitute the appropriate data as the argument. See the 
Arexx interface section for GETUSER numbers. For 



21 4 CNet PRO 3 Bulletin Board Service 



example, arguments of "%1 %40" will pass the user's 
handle and account number. 

Access groups: the range of access groups which are able 
to see this item on the list of items. 

Flags required: each number specified in this field must 
also appear in the user's "gfile/pfile flags" range of 
numbers. If any number specified in this field is not 
present in the user's "gfile/pfile flags" field, this item will 
not be seen on the list of items. 

Post date: the date that this item was added to the list. 

Item use rate#: a number to 3, used in conjunction with 
the accounting system to charge the user for the use of this 
item (per execution or read). The number refers to NO 
CHARGE. The numbers 1 to 3 refer to the accounting 
system's "per pfile execution" or "per gfile read" fields 
(there are three of each), depending on whether the item is a 
text file or a program file. See the CONFIG chapter for 
more information about the accounting system. 

Debit daily time: whether or not to subtract the time used 
to execute this pfile from the user's daily allocated time to 
execute pfiles. The user field "daily pfile minutes" limits 
the number of minutes per day that may be spent executing 
pfiles. 

Disable MCI: whether or not to TURN OFF ALL MCI 
commands during the reading or execution of this file. 

Disable More?: whether or not to TURN OFF the More? 
page prompt. Set this to Yes for animation files. 

Enable SkyPix: whether or not to enable SkyPix 
(pseudo-ANSI graphic drawing commands) during the 
reading or execution of this file. 

Raw console startup: in the case of a DOS pfile, whether 
or not to enter the pfile in "rawcon" mode. A program that 
is written in "raw console" mode uses "hotkey" input. That 
is, it does not require the ENTER key. Most programs 
automatically enable Raw console mode. This flag is 
included in order to "fix" those that don't automatically 
enable Raw console mode. 



The "List" Subsystems: FFiles, GSles, and News 215 



Purge date: once this date has been reached, 
automaintenance will remove this item from the list. See 
the "delete when purged" flag also. 

Item disabled: if set to Yes, the reading or execution of 
this item will be temporarily disabled. 

One user at a time: in the case of a pfile, set this to Yes if 
the pfile was not written for use in a multi-user 
environment. If multiple users simultaneously attempt to 
use a pfile which was not written for use in a multi-user 
environment, the pfile' s data structures or even the BBS's 
data structures may become corrupt. 

Disable word-wrap: whether or not to disable the 
(default) automatic word wrapping of text. Set this to Yes 
for animation files and most programs. 

Disable sysop MCI: this is a security feature. If there is 
any chance that the pfile contains an MCI "back-door," set 
this to Yes. The most powerful MCI commands willbe 
disabled. 

Delete when purged: used by automaintenance in 
conjunction with the "purge date" field. If set to yes, the 
file will be deleted from the drive at the same time it is 
removed from the list by amaint. 

To edit the text of a text file (Gfile or News file), use the 
"ED" command followed by the item number. 

Executing Items 

Reading a gfile or executing a pfile is as easy as entering its 
number at the prompt. Use the "Scan" command to 
re-display the list of items. The various access restrictions, 
accounting charges, and daily pfile time will all be checked 
first. Sysops use the "Scan!" command to receive detailed 
information about each item. 

Moving and Removing items 

Several maintenance commands exist for changing the 
order of items. 



216 CNet PRO 3 Bulletin Board Service 



The "X" command can be used to quickly alphabetize the 
list of items according to their descriptions. 

The "ML" command is for reorganizing the current list by 
MOVING any item to a new spot. The ML command takes 
TWO arguments, the first being the item number you want 
to move, and second being the "target" item number to 
which you would like the item moved. The moving item 
will then appear AFTER the one currently in the "target" 
location. 

The "K" command is used to remove items from a list. 
Specify a RANGE of item numbers to remove. The option 
is given to actually delete the file(s) from disk. 

Swinging the Branches of the Subdirectory Tree 

Similar to the message and files areas, it is possible to 
create a "subdirectory tree" structure within the pfiles, 
gfiles, and news areas. The difference between 
subdirectories in the message and files areas, and those in 
the pfiles, gfiles, and news areas is that the former hold lists 
of SUBBOARDS, and the latter hold lists of 
readable/executable ITEMS. 

To add a subdirectory to the current list of items, use the 
"AL" command. You will be taken immediately to the 
edit-item VDE screen. Set the "DOS filename" to a unique 
subdirectory name. Set the "description" field to the text 
you would like users to see when displaying the list of 
items. Exit the screen and select to "save changes." After 
this, you are immediately taken to yet ANOTHER VDE 
screen to edit the access restrictions for your new 
subdirectory. See the next section for a description of this 
screen. 

All pfiles area subdirectories are created in PFILES:, all 
gfiles area subdirectories in GFILES: and all news area 
subdirectories in NEWS:. Therefore, all "DOS filename" 
subdirectory names used in any one particular area must be 
unique. 

To enter a subdirectory, enter the number that appears next 
to the subdirectory description when listing items. 



The "List" Subsystems: PFiles, GSIes, and News 217 



To return to the "previous" list of items (that is, move 
BACK a branch in the subdirectory tree), use the 7" 
command. 

To remove a subdirectory from the list, use the "K" 
command followed by the item number. Unlike the 
subboards, there is not a separate "KL" command. NOTE 
that when you kill a subdirectory, all files within that 
subdirectory are deleted from disk if you select to "delete 
files also." 

To edit the entry or exit text files for the current 
subdirectory (list of items), use the "ENtry" or "Xit" 
command, respectively. 

Restricting Access to a List of Items 

The majority of the access restriction fields found in the 
subboard's "EL" screen are also available here to restrict 
access to specific lists of items. To edit these fields, use the 
"EL" command from the pfiles, gfiles, news, or a 
subdirectory prompt. The "EL" command here always 
affects the CURRENT list of items, so never takes an 
argument. Note that the use of the "EL" command here is 
slightly different than it is in a subboard, where it is 
possible to use an argument to edit any subboard from the 
list of subboards. 

Because the fields here are identical in operation to those 
found in the subboard "EL" screen, they will not be 
described again. Please consult the subboard chapter for 
reference. The one difference is the reference to "flags 
required." Just as there are separate fields in the user's 
account for Message base and File base flags, there is a 
field for "Gfile/pfile flags." 

The DOS Shell Interface 

CNet use's Matt Dillon's "fifo" program to handle the 
online shell interface. This interface is very stable, and 
completely supports the "raw" console mode. If your BBS 
was correctly configured, you should find the 
"fifo-handler" program in the L: directory, and the 
"fifo.library" file in the LIBS: directory. Without these 



21 8 CNet PRO 3 Bulletin Board Service 



files in place, the DOS shell interface will not operate. 
When you run a DOS shell program, either from the Pfiles 
or by using an MCI command, CNet uses the "fifo" 
program to redirect input and output to and from the BBS. 

If you write your own DOS shell program for use with 
CNet, the most important thing to have your program do is 
to "die gracefully" when control-C is detected. In the event 
that the connection with user is broken, or his time limit has 
expired, CNet will attempt to "break" the DOS shell 
program by using control-C. If you have the knowledge, it 
would be wise to close files, and leave the system in a 
stable state before exiting. 

The CNet C Command Interface 

CNet offers a very powerful pfile interface through the C 
language. Pointers to all of CNet's memory structures are 
available here for users who really know what they are 
doing. The directory "programming'' on the CNet 
distribution disks holds the current header (".h") files and 
example code. 

The AREXX Command Interface 

CNet's AREXX interface supports a large number of 
"callback" routines. They are used just like other AREXX 
functions. When a function returns a result, it can be found 
in the AREXX variable "RESULT." 

CNet's AREXX interface can either be used from a pfile, or 
from a completely free-standing external AREXX program. 
From an external program, you must first "address" one of 
CNet's AREXX ports by using the following command 
(replace P with an open port number): 

address cnetrexxP; 

This address command is NOT necessary in a pfile run 
from within CNet. Pfiles automatically address the port 
they were run from. 

Input routines like "prompt" and "getchar" return 
"###PANIC" when there is a loss of carrier, or the user's 
time is up. You should check for this condition to avoid 
crashable programs! 



The "List" Subsystems: PFiles, GSles, and News 219 



Following are descriptions of CNet's built-in AREXX 
functions: 

ADDKEYS {s} 

Add the characters {s} to the input buffer, as if the 
user had typed them. 

ADDPOENTS {n} 

Add the value {n} to the user's "DoorPoints" field. 
To subtract, use a negative number in parentheses! 

ADDTIME {n} 

Add the value {n} (in TENTHS of minutes) to the 
user's time remaining for the call and day. To 
subtract time, use a negative number in parentheses. 

BAUD {n} 

Set the baud rate to {n}. 

BBSCOMMAND {s} 

Execute the BBSCOMMAND {s}. {s} must be a 
command found on the "available everywhere" 
menu (see the BBSMENU file). 

BBSIDENTIFY {arg} 
{arg} : returns 
ABBEREXX : "1.0" 

BBS : "2.35" or current CNet version 

EMULATION: "ASCII" or "ANSI" 
NAME : Your BBS's name (bbstext line 9) 

SYSOP : Sysop's name (bbstext line 10) 

TERM : < baud> < columns> < rows> < line> 

USER : •< usemame> " "< callingfrom" < access* 

< access> is returned as GUEST for new users, MEMBER 

for other users, SYSOP for account #1, CO-SYSOP for any 

other account with maintenance access. 

BUFFERFLUSH 

Empty the current serial and keyboard input buffers. 

CALLEDITOR {n} 

This invokes the user's default editor with {n} 
maximum lines (0 for default). The current contents 



220 CNet PRO 3 Bulletin Board Service 



of the editor's buffer are loaded, and the results are 
re-saved. " 1 " is returned if the temp buffer is not 
empty ("0" otherwise). 

CHANGEWHAT {s} 

Set the user's COMMAND field in WHO displays 
and the control panel. This feature may not yet be 
implemented. The command is added for upward 
compatibility. 

CHANGEWHERE {s} 

Set the user's WHERE field in WHO displays and 
the control panel. RESULT will be set to the OLD 
value of the field. 

CHECKABORT 

Returns 1 if user has pressed Control-C or 
SPACEBAR, otherwise. You should call this 
AFTER a line of output has occurred. Each time 
something is printed, this is reset to 0. 

CHECKIO 

Returns if the input buffer is empty, or 1 
otherwise. 

CLEAREDITOR 

Clears the contents of the editor temp file. Use this 
before C ALLEDITOR if you do not use 
LOADEDITOR. 

CLOSEDISPLAY 

Close the port screen or workbench window. 

CLS 

Sends the screen-clear code. 

DROPCARRIER 

Clear the phone line. 

FEEDBACK 

This performs the standard FEEDBACK command, 
allowing the user to leave a message to the sysop(s). 

FINDACCOUNT {s} 

This function accepts either an account number or a 



The "List" Subsystems: PFiJes, GBles, aadNem 221 



handle. It performs the familiar handle-search if 
necessary. The account number is returned if there 
is no problem. is returned otherwise. 

GETCHAR 

Wait for a single key to be pressed. 

GETCARRIER 

Returns 1 is there is a carrier (or local mode), 
otherwise. 

GETPORTID {port} 

Give account # for user on port {port}. A result of 
-1 means NO user is on that port. 

GETUSER {n} 

Get a variable from memory. See the description of 
this command in the next section. 

GETSCRATCH {n} 

Operates like GETUSER, but reads user data from 
the internal "scratch" account structure. With 
LOADSCRATCH, this is useful for examining 
user's accounts other than the current user's. 

GETWHERE {PORT} 

Tell what user on port {port} is doing. 

HANGUP 

Same as DROPCARRIER. 

IREADY 

Same as CHECKIO. 

LOADEDITOR {s} 

This will read the filename given by {s} into the 
editor temp buffer. 

LOADSCRATCH {n} 

This command should be performed before 
GETSCRATCH 's. The argument must be a valid 
account number. RESULT will carry a "1" if 
everything was loaded OK, "0" otherwise. This 
command LOCKS the account specified. The 



222 CNet PRO 3 Bulletin Board Service 



AREXX program ALONE then has access to it. To 
signal that the program is DONE with the account, 
each LOADSCRATCH {id} must eventually be 
followed by a corresponding SAVESCRATCH 
{id}. 

LOGENTRY {s} 

Add the text given by {s} to the call log. 

MAYGETCHAR 

Returns a character from the input buffer, or 
"nochar" if the buffer is empty. 

MODEM {n} 

{n} is to totally close the serial port, 1 to open it, 2 
to stop all read I/O, but keep the port open. 

OPENDISPLAY 

Attempt to open the port's screen or workbench 
window. It may take a few seconds for the display 
to open. 

NEWLINE 

Sends the newline code. 

PRINT {arg} 

Same as TRANSMIT. 

PROMPT < length> {arg} "'< prompt* "' 

< length* is the maximum # of characters to input, 
{arg } is one of: 



NORMAL 

HIDE 

YESNO 

NOYES 



password input 
Yes/No, Yes is default 
Yes/No, No is default 



NOTE: < prompt* must be surrounded by double quotes, 
and then single quotes, so that AREXX will actually send 
the quotes to CNet. 

PUTSCRATCH {n} 

Takes an argument of the same form as 
GETSCRATCH (note, however, that you should not 
use the 7 digit format with put/get scratch, only the 
numbers 1-41. 



Tie "List" Subsystems: PFiles, Giles, and News 223 



PUTUSER {n} 

The opposite of GETUSER. Use SETOBJECT 
before using PUTUSER, 

QUERY {s} 

Input a line, with a prompt of {s}. Up to 80 
characters may be entered. 

RECEIVE 

Input a line, without a prompt. Up to 80 characters 
may be entered. 

RESETMODEM 

Send the modem's initialization commands. 

SAVEEDITOR {s} 

Write the contents of the editor temp buffer to the 
file specified by {s}. If the file {s} already exists, it 
will be overwritten. RESULT will carry a "1" if 
everything was written OK, "0" otherwise. 

SAVESCRATCH {n} 

{n} is the account number previously used in a 
LOADSCRATCH command. If {n} is a 
NEGATIVE ID number, the user data will not 
actually be SAVED, only the LOCK removed. This 
is useful for programs which just read account 
information, and do not wish to add the overhead of 
saving an account to disk for no reason. 

SCREENOUT {s} 

Display {s} only to the screen, not the modem. 

SELECTFILE {path} 

Add the file given by {path} to the user's select-list 

SEND {arg} 

Sends the given string without translation of any 
kind, (no MCI, etc). 

SENDFILE {s} 

Read the file given by the path {s}. 

SENDMODEM {s} 



224 CNet PRO 3 Bulletin Board Service 



Send the string given by {s} to the modem ONLY, 
not to the screen. 

SENDSTRING {s} 

Print the text given by {s}. No carriage return is 

printed afterward. ^ 

SETMAILSUBJ {s} 

This command should be performed before EACH 
WRITEMAIL in order to set the SUBJECT of the 
mail about to be sent. 

SETMINFREE {s} 

This command tells CNet when to STOP an 
upload-in-progress due to critical disk space, {s} 
should be the lowest free-BYTES on the hard drive. 

SETNODELOCATION {arg} 

Same as CNet's NEW command 
CHANGEWHERE. 

SETOBJECT {s} 

Use this command before each PUTUSER or '-— -' 

PUTSCRATCH to specify the data you wish to 
write into the user's account. 

SETPROTOCOL {s} 

This command should be used before an XUP or 
XDN. {s} should be a SINGLE character, matching 
a character in BBSPROTO to designate a specific 
protocol. If you wish to allow the user to choose his 
own protocol, send {s} as a NULL string. 

SHUTDOWN 

Does nothing. Included for compatibility. 

SPAWN {s} 

Run the AREXX command given by {s}. Usually 

this is the LAST command in an AREXX pfile, so v_^- 

that control may be transferred to another pfile. 

SYSOPLOG {arg} 

Samge as LOGENTRY. 



The "List" Subsystems: PFiles, Gtiles, and News 225 



TRANSMIT {s} 

Print the text given by {s}, and then a carriage 
return. MCI is translated here. 

VERSION 

Returns the current CNet version. 

WRITEMAIL {s} 

Write the contents of the editor temp buffer to the 
user's mailbox specified by {s}. {s} must be a 
valid account number. RESULT will carry a "1 " if 
everything was sent OK, "0" otherwise. Use 
SETMAILSUBJ before WRITEMAIL. 

XDN {s} 

This command has been CHANGED so that it now 
performs an XPR file download of the specified file 
{s}. The command SETPROTOCOL must be used 
first. 

XUP{s} 

This command has also changed with XDOWN in 
the same way. If the transfer is a batch protocol, it 
is OK to simply pass the PATH here. 

How to form GetUser and PutUser arguments 

GETUSER and PUTUSER are extremely powerful 
commands that allow you to read or set just about ANY of 
the "variable" data that CNet is using to run the BBS, and 
the user data information for any users currently online. 
This power allows experienced programmers the ability to 
create a limitless number of games and utilities to add-on to 
CNet. However, the PUTUSER function (to CHANGE 
data) is not a toy to play with. Using it without fully 
understanding how it works can lead to corrupted user 
records, lost data, and major crashes of the BBS or even the 
entire computer. 

There are two ways to use the GETUSER function. The 
first way allows you to access ANY variable in the 
MainPort (common to all ports) or PortUser (for the current 
port) structures. The argument required is seven digits 
long, in the format XT#####, where X is 1 for the PortData 
structure, or 2 for the MainPort structure. T is the variable 



226 CNet PRO 3 Bulletin Board Service 



type, 1 for BYTE, 2 for SHORT, 3 for CHAR *, 4 for 
LONG, 5 for Struct IsDate *, and 6 for CHAR ** (a pointer 
to a character pointer). The ##### is a five digit OFFSET 
into one of the two available structures. For definitions of 
the structures, see the file "cnet.h" in the programming 
directory on the CNet distribution disks. 

Table of GETUSER values 

There are 99 pre-defined GETUSER values. To access one 
of these, you simply need to use the number from the 
following table as an argument. 



1 


Handle 


2 


Password 


3 


Real name 


4 


City and state 


5 


Zip code 


6 


Address 


7 


Time left 


8 


Sysop comment 


9 


Voice phone 


10 


Data phone 


11 


Last call date amd time 


12 


Today's date and time 


13 


# of mail 


14 


# of new mail 


15 


Access group 


16 


Access group name 


17 


Maintenance (0=No) 


18 


Number of minutes onlie today 


19 


Screen clear code (always 12) 


20 


Balance 


21 


Door points 


22 


User's total calls 


23 


Port number 


24 


Current CPS 


25 


File upload ratio 1 


26 


Byte upload ratio 1 


27 


Term width 


28 


Term type 


29 


Default protocol 


30 


Uploaded Kbytes 


31 


Uploaded files 


32 


Downloaded Kbytes 



I The "List" Subsystems: PFiles, GSles, and News 227 

33 Downloaded files 

34 File credits 

35 Byte credits 

36 Public messages 

37 Private messages 

38 User's WHO banner 

39 UUCP id 

40 Account number 

41 ID (serial) number 

42 Day uploaded bytes 

43 Day downloaded bytes 

44 Day uploaded files 

45 Day downloaded files 

46 Morning, afternoon, or evening 

47 System caller number 

48 Subboard number 

49 Subboard title 

50 Last user's name 

51 Post access? (0/1) 

52 Respond access? 

53 Download access? 

54 Upload access? 

55 Help level 

56 Country 

57 Logon time 

58 Birth date 

59 Organization 

60 MCI numeric registers ( 10 of them) 
70 MCI character registers (5 of them) 

75 byO, current message primary author name 

76 byl, current message secondary author name 

77 toO, current message primary addressee name 

78 tol , current message secondary addressee name 

79 dateO, current message date 

80 organ, current message organization 

81 br, current item number 

82 rs, current response number 

83 iheadO.Responses, number of responses 

84 iheadO.Size, size of file 

85 ItemO.Downloads, number of downloads 

86 ItemO.BestCPS, best CPS rate 

87 titleO, current item title 

88 Fancy size, size including "K", "M" etc. 

89 plus, part of the Scan output 



228 CNet PRO 3 Bulletin Board Service 



90 star, part of the Scan output 

91 Fancy core, filename without extension 

92 Fancy suffix, filename extension 

93 Fancy date, chopped date for Scan output 

94 Fancy time, chopped time for Scan output 

95 Total system calls myp-> Nums[3] 

96 Total uploads myp-> SAM[3][8] 

97 Total upload K myp-> SAM[3][9] 

98 Total downloads myp-> SAM[3][10] 

99 Total download K myp-> SAM[3][1 1 ] 



I later-Us er Communication and Conferencing 229 i 

CHAPTER 12 - Inter -user communication 

This chapter deals with issues relating to communication 
between users simultaneously on-line to your BBS. It also 
deals with BBS features which involve inter-port 
communication. Even if you run only one "dial-in" port, 
the majority of the features outlined in this chapter will 
apply to the interaction between dial-in and "local" ports as 
well. 

The most important command to know is "WHO." This 
command displays a table of information to let you know 
the status of every port on the system. Each line consists of 
a port number, the name of the user currently using that 
port, his logon time, his baud rate, his city, and what he is 
currently doing on the BBS. If the user has specified a 
"banner" (by using the EP command), the banner is 
displayed below the user's other information. New users 
have a default banner of "Be nice to me, I'm new." You 
may change the default new user banner by editing the 
BBSTEXT file (explained in another chapter). If a port is 
waiting for a call, the user will be shown as "(no one)." By 
default, these "idle" ports are shown on the WHO display. 
An option exists from the CONFIG program's "options..." 
screen to inhibit the display of "idle" ports. The user may 
specify a range of ports to be displayed by the WHO 
command. 

Using the "hiding" feature (described below), it is possible 
to be on-line to the BBS, but have the port "appear" idle. 
Users may not hide from users who have the "conference 
control" privilege flag (usually only the sysops have this 
flag). 

On-line messages (OLM's) 

On-line messages (or OLM's for short) are a quick way to 
convey messages to users on other ports. The command for 
sending an OLM is "OLM." You may specify the port 
number or user name directly following the OLM 
command. Specifying a user name of "*" will cause CNet 
to "broadcast" the OLM to ALL ports. When sending an 
OLM by handle, it is only necessary to type enough letters 
for CNet to find an exclusive match with the handle of one 
user currently online. OLM's may consist of up to 380 



230 CNet PRO 3 Bulletin Board Service 



characters. Once you have begun to write an OLM, you 
may BACKSPACE to the beginning of the input buffer to 
CANCEL the OLM. Pressing RETURN will immediately 
send the OLM. 

You will be notified if your OLM was successfully sent or 
not. It is possible that the user to whom you are writing an 
OLM will logoff while you are composing your message. 
In the case of a "broadcasted" OLM, you will told the exact 
number of ports which received your message. 

The ability to send OLM's is controlled by a user privilege 
flag. A user may not send an OLM to another user if that 
other user does not have the ability to reply (that is, he does 
not have the "send OLM" privilege flag). 

Incoming OLM's are primarily only displayed at command 
prompts. Incoming OLM's are "buffered" until you reach a 
command prompt. OLM's will not interrupt the visual 
editor, and will not interrupt you in the middle of typing a 
command. 

After each OLM is displayed, several options are given. 
You can use the "Again" command to re-read the OLM. 
The "Reply" command will send an OLM in reply. The 
"Save" command will write the OLM to your mail box for 
later reference. In addition, many other system commands 
are available from this prompt which "default" to the sender 
of the OLM that you are reading. For example, the "Mail," 
"Finger," and "CC" commands automatically use the name 
of the OLM sender as their arguments. For a complete list 
of commands, enter "?" at the OLM options prompt. 
Prompts between OLM's do NOT appear when you are in 
the join teleconference. 

When replying to a broadcast message, you are given the 
option of broadcasting your reply, or sending it only to the 
sender of the OLM. 

Hiding and muffling 

You are "hidden" from other users when they are unable to 
see that you are on-line when they use the WHO or OLM 
commands. You "muffle" other users when you only 
prevent them from sending OLM's to you—they are still 



Inter-User Communication and Conferencing 231 



able to see that you are on-line by using the WHO 
command. Use the "Hide" command to hide from users, or 
to again become "visible" to users. Use the "MUffle" 
command to muffle users, or to again make them "audible." 
Each command may take a port number or user name as an 
argument. Use "*" to specify ALL ports. 

Using the "*" argument activates an internal logic toggle. 
When initially you are visible to all ports, you may use the 
HIDE command to hide from specific ports. When users 
on those ports logoff, you will again become visible to 
those ports. When initially you are hidden from all ports, 
or you use the "HIDE *" command to make yourself hidden 
from all ports, you may use the HIDE command to make 
yourself visible to specific ports. When users on those 
ports logoff, you will once again become hidden to those 
ports. This works in a similar manner for the muffle 
command. 

Users may not hide or muffle users who have the 
"conference control" privilege flag enabled (usually just the 
sysops have this privilege). Users with "conference 
control" may not hide or muffle from each other. 

Each user has the option "auto hide & muffle" from the EP 
command to set the hide and muffle flags automatically 
each time they logon. This variable may take one of the 
following values: 

Off: Logon normally without affecting the hide and 
muffle flags. 

Your own port: 

If you often use the join teleconference, this setting 
will prevent your input into the conference from 
being "echoed" back to you. It can be annoying to 
see twice everything you type. 

Other ports: 

Hide and muffle ALL ports except your own. This 
provides for a "stealth" logon— users will not know 
that you have even logged on. It is equivalent to 
using "HIDE *" and then HIDE again to become 
visible to your own port. 

All ports: 

A combination of the previous two values. 



232 CNet PRO 3 Bulletin Board Service 



Letters appear in the WHO display next to the port numbers 
to remind you of how your hide and muffle flags are set. 
Seeing the lower-case "h" shows that you are hidden from 
the port. Seeing the lower-case "m" shows that you are 
muffling the port. Seeing the upper-case "H" shows that 
the user is attempting to hide from you, but is unable to 
(because you have the "conference control" privilege flag). 
Seeing the upper-case «M» shows that the user is attempting 
to muffle you (he may or may not be able to muffle you 
depending on your access). Seeing a "+" shows that the 
user has the "conference control" privilege flag, and is 
incapable of being hidden from or muffled. 

User logon/logoff monitor 

By activating the "user monitor" feature, you can have 
CNet send you an OLM each time that someone logs on or 
logs off of specific ports (or all ports). Use the "UM" 
command to activate the user monitor. You may give the 
UM command a specific port number as an argument, or 
"*" to specify ALL ports. Using "*" will cause CNet to 
toggle between the monitoring and un-monitoring of ALL 
ports, regardless of which ports are currently being 
monitoring. 

The "user monitor" status of a port does not "toggle" in any 
way when users log and or log off. Only the UM command 
works to change the user monitor flags. 

Users who log on using the "auto hide & muffle" field set 
to "all ports" or "other ports" will not be seen by other users 
who are on-line and using the "user monitor" feature. Users 
with the "conference control" privilege flag, however, may 
always see other users log on and log off. 

Inter -user chat 

Two users may enter a private "chat mode" where they may 
interactively type to one another in real-time. In order for 
this chat mode connection to be made, one user must 
"request" the chat, and other must "accept" it. Both 
requesting and accepting of inter-user chat are done with 
the "CC" command. You can specify a port number or user 
name after the "CC" command, or specify "*" to request a 
chat with ANY user. 



: In ter-User C om munication and Conferencing 233 j 

There is a way to FORCE a chat. If a user with the 
"conference control" privilege flag adds "!" to the end of a 
"CC" command (like CC2!), CNet will attempt to enter 
inter-user chat immediately-no "acceptance" of the chat 
will be required. 

To get out of inter-user chat mode, either user can use 
control-X at any time. Chat mode also exits if either user 
hangs up or runs out of time. 

BBS commands can be executed while in chat mode. 
Pressing 7" at the beginning of any line will momentarily 
put the other user on "hold." After the 7," you may enter 
any of the "global" BBS commands (like WHO, Mail, or 
OLM). The other user will not be able to see what you are 
doing. Text that the other user types while you are away 
will be buffered, and displayed to you all at once when you 
return to chat mode. 

Chat mode uses three colors. One is used by the chat 
"requester," one is used by the chat "acceptor," and one is 
used by the sysop if he types into either of the user's port 
screens. These three colors are defined by the MCI 
commands found on lines 936, 937, and 938 of the 
BBSTEXT file(s). 

The port screen's pull-down menu "chat mode" option is 
actually a specialized version of inter-user chat. One 
difference is that the user may not use control-X to cancel 
the chat. Only the sysop can exit sysop chat mode, by 
using the pull-down menu a second time. Another 
difference is that the user's time remaining is 
"suspended"— he does not lose any of his time allotted for 
the call or for the day while in sysop chat mode. 

The "join" teleconference 

CNet's "join" teleconference might be called a "CB 
simulator," "multi-user chat" or "party conference" on other 
systems. It allows users to enter one of possibly several 
"rooms" or "channels" where they may all type 
simultaneously and have their conversation broadcast to all 
other users in the room. A user's input is not broadcast 
until he presses the ENTER key. If a user has the 



234 CNet PRO 3 Bulletin Board Service 



"conference" privilege flag, he may use the "Join" 
command from the main prompt to enter the teleconference. 

When a user enters a room, all users currently in that room 
are notified of the new arrival. For users other than system 
operators, the "hide" settings are ignored in the conference 
room-all users will be able to "see" all other users with the 
7L" command. The user entering the room is given a quick 
summary of who is already in the room. To enter text into 
the conference, just begin typing. 

The Conference Room Commands 

All commands begin with the 7" key. The following 
commands are available in the conference: 

/?: a brief summary of all conference room commands. 

/COntrol: may be used by a system operator to "take 
control" of a room. Control is revoked from the user 
currently "in control." 

/Invite: allow specific users into a room. OLM's are sent 
to users notifying them of your invitation. If the room's 
"doors" are closed, a user must have an invitation to enter 
the room. 

/List: display a list of users and which rooms they are in. 
Users in "control" of rooms are shown with a "#". 

/NAme: toggle the use of your real name. If you enter a 
real-name room, and you have selected (using the EU 
command) to keep your real name private, only your handle 
will be used. This command will ALLOW the use of your 
real name in the room. 

/PAss N: pass control of this room to port N, as if the user 
on port N was the one to create the room. 

/PErma: toggle the "permanent" status of the room. 
"Permanent" rooms are not destroyed when empty. Normal 
rooms are removed from memory and their configurations 
lost when the last user leaves. If you plan to /SAve a room, 
you should make it permanent first. 



Inter-User Coaantmica tion and Conferencing 235 



/Quit: quit to the Main prompt. 

/Room: toggle between "the lobby" (conference room 0, if 
there is one) and your "private" room (a newly created 
room in which you have control). If you create a private 
room and then leave it, you will resume contol once you 
return. If you do not plan to return, you may use the 
"/PAss" command to give control to another user. 

/Room N: switch to a specific room by number. Room 
names and numbers are shown by the "/List" command. 

/SAve: save this room's configuration so that it will be 
automatically recreated if ever the BBS is downed and 
re-booted. The room should be made "permanent" first. 
Saved configurations are not used if a non-permanent room 
is vacated and then re-entered. 

AJNinvite: remove users from the room. This command is 
only effective if the "doors" to the conference room are 
closed. 

/Verify: in a join-link room (where the conference areas of 
more than one BBS system are "linked" together), request a 
roster of all link id's and ports. Use this command if you 
unsure of the integrity of the /List display. 

/X: edit your conference preferences. Users' conference 
preferences are only saved if the CONFIG "options..." field 
"keep conference prefs" is enabled. Otherwise, they are 
lost upon return to the Main prompt. Conference 
preferences are described later in this section. 

/XR: edit the room's preferences. These are described 
later in this section. 

-: whisper to a user. You must enter the destination's 
handle or port number. Text you enter here will be visible 
only to the specified addressee. 

+: shout to a user. You must enter the destination's 
handle or port number. Text you enter here will be visible 
to ALL users, but will contain a message showing it was 
addressed to a specific person. 



236 CNet PRO 3 Bulletin Board Service 



=: make a noise. A noise is like a parenthetical interjection 
into the conversation. Some noises can be "addressed" to 
specific users. Some noises act on an "object" that you 
specify. By pressing ENTER at the noise prompt, you may 
obtain instructions, a list of noises, or a list of "prototypes" 
(the actual text that is "filled-in" with your information to 
make complete sentences). After entering a valid noise 
name, CNet will prompt you (if necessary) for required or 
optional arguments. 

When a noise is made, there are actually three different 
versions of the text created. One for the author, one for the 
addressee, and one for everyone else. Using simple English 
rules, CNet will use the first, second, or third person of 
pronouns and verbs as necessary. The systextmoises file 
contains many "macros" preceeded by the '"" character. 
CNet replaces these with the appropriate text as necessary. 
For example, '"0" is replaced with "you" for the text shown 
to you, and is replaced with your name when shown to 
everyone else. 

By making modifications to BBSTEXT and the 
systextmoises file, it may be possible, but challenging, to 
convert the noises to another language. 

User Conference Preferences 

Each user may set the following conference room 
preferences for themselves using the /X command: 

alias: a name other than your real name or handle which 
will be used in rooms configured to use aliases. If you do 
not specify an alias, your handle will be used in these 
rooms. 

default room (lobby or private): if set to lobby, CNet will 
first attempt to enter room when you enter the join 
teleconference. If set to private, CNet will first attempt to 
create a new room in which you have control. 

private room topic: the default discussion topic whenever 
you create your private room. 



Inter-User Comaumica tion and Conferencing 237 



display action commands (yes or no); set this to No if 
you are annoyed by the constant display of "noises." 
Default is Yes. 

entry message: text that will be shown to other users 
when you enter a room. Be sure to include '"0" somewhere 
in the line. If you do not, CNet will automatically print 
your name at the end of the message. 

exit message: text that will be shown to other users when 
you leave a room. Be sure to include '"0" somewhere in 
the line. If you do not, CNet will automatically print your 
name at the end of the message. 

personal noise: a custom noise that can be used by 
entering "p" at the noise prompt (the = command). You 
MUST include '"0" in your private noise in order for it to 
be used. The other noise macros ('"1" etc.) are optional. 

Conference Room Preferences 

Users in control of a room (creators and users with the 
conference control privilege flag) may use the /XR 
command to set the following room preferences: 

topic: the room's topic, as seen from the 7L" display. 

user names (handle, names, or aliases): control which 
name will be used in the room. If a user's real name is set 
to be private, his handle will be used, unless he uses the 
7NAme" command. If the user has not specified an alias, 
his handle will be used. 

gender (either, male, female): allows you to create rooms 
in which only one gender may enter. 

youngest/oldest age: allows you to create rooms into 
which only persons of certain ages may enter. 

access: a RANGE of access groups which may enter a 
room. By default, this is ALL groups, 0-31. 

doors (open or closed): when the doors are closed, only 
users with invitations (the /EN command) may enter the 
room. When the doors are open, ALL users may enter. 



238 CNet PRO 3 Bulletin Board Service 



capture file (open or closed): when open, CNet will 
prompt you for a filename. All text displayed will be saved 
to this file. MCI command sequences will automatically be 
stripped. 

show on /List (yes or no): if set to No, this room will not 
appear when users use the 7L" command, unless they are 
already in the room. 

SIG/Public Room (yes or no): if set to No, the creator's 
name is displayed as part of the room's title on the "/L" 
display and when entering the room. If set to Yes, there is 
no official "owner" of the room. 

chaos (no names) (yes or no): if set to Yes, names and 
port numbers will NOT be displayed before text. This 
makes it impossible to tell who said what. 

max room capacity: set this if you wish to limit the 
number of users who may enter the room. "0" will allow an 
unlimited number of users. 

lurk timeout (min): set this if you wish to prevent users 
from entering the conference room and just watching 
without saying anything (AKA "lurking"). CNet's "idle 
timer" alone will not catch these users, because there IS 
activity (text being displayed on the screen). 

noise set #: select which "noises" file to use for this room. 
Noise set is the file "systextmoises." Noise set 1 is the 
optional file "systext:noisesl." Noise set 2 is the file 
"systext:noises2," etc. If you add to or change a noise file, 
you must use the control panel's menu option "text/menu 
reload" to re-load the noises files. 

JoinLink channel: if you are using join-link, set this 
number to 1 or greater to correspond to the "channel" this 
room should listen to. See the discussion of join-link in a 
section later in this chapter. 

entry message: the text that will be displayed to users as 
they enter the room. 

exit message: the text that will be displayed to users as 
they exit the room. 



later-User Communica ton and Conferencing 239 



Port monitoring 

From the console, it is easy to view or monitor a user's 
session— just open the port screen. With the proper 
privilege flag ("port monitor"), users can use the "MOnitor" 
command to have any other port's output simultaneously 
displayed on their REMOTE terminal screen. This allows 
users to remotely play "Big Brother." By answering Yes to 
a prompt, it is also possible to activate the monitoring 
user's keyboard for input into the port being monitored. 
This privilege flag should be reserved for system operators 
and other extremely trusted individuals. 

It is currently only possible to use the port monitor between 
two remote ports. A local logon can not be monitored. A 
remote user can not be monitored from the console by 
using the "MOnitor" command. 

Although unrestricted, it is wise to be using a baud rate 
equal to or greater than that of the port you are monitoring. 
Otherwise, the user being monitored will notice a "lag" in 
text output. 

To exit from port monitor, you must press control-Z twice. 

Remote terminal system 

Have you ever encountered the situation where it is local 
for you in location "B" to call a location "C", and local for a 
person in location "A" to call you in location "B" but it is 
not local for "A" to call "C"? For this and other reasons of 
convenience, CNet has the ability to allow a user on your 
BBS to enter "terminal mode" with one of your unused 
ports. Users with the "use termlink" privilege flag set to 
"full" can use the 'TERM" command from the Main 
prompt with a port number as an argument to enter terminal 
mode with that specific port. It is also possible to limit the 
"TERM" command's ability to the dialing of specific 
numbers by setting the user's "use termlink" privilege flag 
to "limited." 

When the user's termlink privilege flag is set to "limited," 
CNet will read the file "sysdata:termlink" to determine 
which numbers may be dialed. The user is then prompted 



240 CAfef PRO 3 Bulletin Board Service 



with a list of these numbers (ones he has access to) and 
asked to select one. Each line of this file must have the 
general format of: 

dial baud bits ports access rate name 

dial: the complete string to be sent to the modem to make 

the connection. This INCLUDES ATD or ATDT. 

No spaces, 
baud: the baud rate to dial with, 
bits: the data word size (7 or 8). 
ports: a range of port numbers which may be used to make 

this call. Select only ports capable of the selected 

baud rate, 
access: a range of access groups. A user must be a member 

of one of these groups in order to be prompted with 

this item, 
rate: a number to 3. means no charge. The numbers 

1 to 3 correspond to the three accounting system 

values, 
name: the name of the system being called. Spaces ARE 

allowed here. 

for example: 
ATDT1 3 132552466 19200 8 1-2 0-31 Future World 
Join-link 

Two or more multi-line CNet BBSs may "link" their join 
teleconference areas. The "on-line network" that is created 
allows users on all linked systems to interact through the 
join teleconference as if all users were connected to one 
(larger) BBS. Users may address their typed comments to 
other users on any of the linked systems. 

To establish a join-link network, each BBS to be in the 
network must select a unique "link id #". This number 
must be 1 or greater, and numbers should be used in 
sequence. Each sysop must use the CONFIG program's 
"limits..." screen to set the "highest join-link network id#" 
field to reflect the highest join-link "link id#" in use in the 
network. Each sysop must also use the CONFIG program's 
"defaults..." screen to set the "default joinlink id#" field to 
reflect the unique "link id#" chosen for his BBS. 



Inter-User Comtmmica tion and Conferencing 241 



A network topology must be chosen. The BBSs should be 
logically arranged into a linear pattern or a "star" pattern. 
The network should form no rings or loops. In the case of 
only two BBSs, the topology is trivial but linear 
nonetheless. 

Although automatic methods will be discussed, the simplest 
way to establish the network is manually. Each sysop must 
choose a port (2 ports if a linear network longer than 2, or 3 
ports if a branch in a star network) to use for join-link. 
Enter terminal mode on that port or those ports. One sysop 
must call the other using ATD commands. Once the 
connection is established, each sysop must use the terminal 
program's pull down menu option "JoinLink." The port's 
screen may then be closed if desired. 

Up to 23 conference rooms can be connected through the 
join-link network. Sysops must use the join 7XR" 
command to set the "channel" number for rooms to be used 
with join-link. A channel number of "0" represents a 
"local" (non- network) room. When rooms are "tuned" to 
the same channel number across the network, text entered 
into one will appear in all of the others. 

The B /L" command will be expanded to include groupings 
of users by link-id (and BBS name). Text will appear with 
the link-id and port number before the name, like "1:0. Big 
Brother" for Big Brother on link-id #1, port 0. Noises and 
whispers may be addressed to persons on other link-id's by 
specifying the link-id and a colon before the port number or 
handle. If you specify only a handle, CNet will 
autmatically search all link-id's for a match. Here are some 
examples: 

Port on your BBS 

2:0 Port on the link-id #2 BBS 

Sammy A user called Sammy on any BBS 

4:Sammy A user called Sammy on the link-id #4 BBS 

A command "/VERIFY" has been included to force a 
recount of the network connections. A conference 
controller should use this command if he suspects that the 
"/L" display is inaccurate. 



242 CNet PRO 3 Bulletin Board Service 



Sysops do not have to be present to connect the join-link 
network. Using BBS events, connections can be made and 
broken automatically. 

The CONFIG "default..." screen contains a "joinlink 
password" field which must be set to a password mutually 
agreed upon between the two systems about to be 
connected. Insure that there are no leading or trailing 
spaces in the password. 

A new BBS event command "Joinlink" takes one of the 
following arguments; 

0: Do not accept incoming JoinLink calls. This can 
also be used by either of the connected systems to 
terminate an existing JoinLink connection. 

1: DO accept incoming JoinLink calls, as well as 
normal BBS calls. 

2: Accept ONLY JoinLink calls. 

ATD{phone#} {password}: 

Dial the phone number specified, and supply the 
password specified in order to attempt a JoinLink 
connection. The interations and interval event 
settings will come in REAL handy to perform 
auto-redial here! 

Say two systems want to connect from 9pm until 10pm. 
Here are the events that will make this happen: 

Abbreviations have been used for the event types. An 
"OFFLINE" event type is "Immediate-force system idle." 
An "IMMEDIA" event type is "Immediate-system idle or 
not." A "HOLD" event type is "Only if system is idle." 

For the calling system: 

Type Command Arguments Time Val Itrlnt 

OFFLINE Off-Line 1 2100 15 1 

HOLD JoinLink ATDT{ph#}{pw} 2100 1 15 1 

IMMEDIA Off-Line 2115 2345 1 

IMMEDIA JoinLink 2200 1 1 



Inter-User Communication and Conferencing 243 



The system will attempt to dial once each minute for 15 
minutes or until there is a connection. If there is no 
connection, the system will return to normal operation at 
9: 1 5p. At 10:00p, the join-link connection (if established) 
will be broken. 

For the system being called: 

Type Command Arguments Time Valid Iter Int 

OFFLINE JoinLink 2 2100 15 10 

IMMEDIA JoinLink 1 2115 45 10 

IMMEDIA JoinLink 2200 2300 1 

This system will reserve itself for ONLY incoming 
join-link calls during the first 15 minutes. For the 
remainder of the hour, other calls will also be accepted. At 
the end of the hour, join-link will be terminated altogether. 

If you want this connection to be made on a weekly 
schedule, set the range of days appropriately. If you want 
this connection to be made on a specific date, set the month 
and date. 



[_244 CN etPRO 3 Bulletm Board Se rvice 

Notes: 



Networking 245 



CHAPTER 13 - Networking: FidoNet and UUCP 

FidoNet was born in 1984, the work of Tom Jennings using 
an IBM PC. By 1985, 150 systems had FidoNet 
"addresses"-consisting of net and node numbers. Today 
(1993), almost 20,000 nodes are members of the FidoNet 
network. Zone numbers were added to separate regions of 
the world. Point numbers were added to allow "end-user" 
input into the FidoNet (like using an off-line mailer). 
FidoNet addresses now consist of four parts, 
ZONE:NET/NODE.POINT (1:2410/215.0 for example). 
The "1" designates North America, the "2410" a region in 
Michigan, and the "215" Future World itself. The "0" after 
the period tells you that Future World is a "node"~a fully 
privileged member of the FidoNet. A system with a point 
number other than is a "point"— completely reliant upon 
the corresponding "node" (its "boss") for its FidoNet 
interaction. 

FidoNet consists of private mail (netmail) and public 
conferences (echomail). Echomail may be "local" to a 
particular region, or distributed around the globe. 
Programs and other files are also transported via FidoNet. 

Sysops of FidoNet connected systems are individuals, who 
run their BBSs as a hobby. Usually, they pay for their high 
phone bills out of their own pockets, but sometimes they 
ask for donations from users. FidoNet coordinators do not 
receive rewards or payments for their work or expenses. 

Connecting your computer totheFidoNet network 

If you are just becoming familiar with FidoNet, you will 
probably want to test the waters as a "point" first. Your 
first step, then, will be finding someone in your area 
running a FidoNet node-preferably someone a local call 
away. This person must agree to make you a point from his 
node. 

You will need a separate piece of software called a 
"mailer". The mailer is used to transfer mail bundles and 
other files to and from other systems. It schedules calls, 
and knows all of the FidoNet "protocols" necessary to get 
the job done. If you are a point, you will only be 
connecting with your boss. The mailer that is 



246 CNet PRO 3 Bulletin Board Service 



recommended for use with CNet is "TrapDoor." TrapDoor 
is available as a download from Future World and other 
BBSs. A small registration fee may be required to use 
TrapDoor to its fullest extent. The program originates from 
Austria, although there are North American registration 
sites. 

Configuration of TrapDoor is not "simple" by any means. 
You must thoroughly read its documentation and 
understand the terminology that is used (the documentation 
likely contains a "glossary" of terms). If your boss node 
uses an Amiga, chances are that he also uses TrapDoor and 
can offer some advice. And, if you need to, someone on 
Future World has probably run into the same problem that 
you have, and wouldn't mind answering a message in the 
"help me" or "FidoNet discussion" subboards. Example 
TrapDoor configuration files can be found on the CNet 
distribution disks. 

With TrapDoor configured and making calls to your boss, 
you will have created an "inbound", "outbound" and 
"nodelist" directories on your hard drive. The inbound 
directory will contain everything that TrapDoor receives 
from your boss or other nodes. The outbound directory 
holds everything waiting to be sent to your boss or other 
nodes by TrapDoor. The nodelist directory contains the 
FidoNet nodelist— a list of all systems connected to the 
FidoNet network. The nodelist is used to verify and 
look-up email addresses. Points are never listed in the 
nodelist. 

If you will be using your FidoNet connection with CNet, 
you are ready to move on the next section, connecting your 
CNet BBS to the FidoNet network. CNet does all of the 
work with the inbound and outbound packets for you. If 
you will be using your FidoNet connection without CNet, 
you will need a host of other FidoNet tools. You will need 
an import/exporter (sometimes called a 

scanner/tosser/packer) like TrapToss, and a message editor 
like Chameleon. Use of these other third party softwares is 
beyond the scope of this discussion. 

You need to fully understand FidoNet, and have a good 
working knowledge and experience with it before 
considering becoming a node. Some users will make this 



Networking 2AT 



their first giant leap. Others will find the "point" route the 
easiest way to get up-to-speed. 

Connecting your CNet BBS to the 
FidoNet network 

There is a great deal of configuration to be done before you 
are ready to operate CNet with FidoNet. The CONFIG 
"FidoNet..." screens must be filled in. See the CONFIG 
chapter for details on this procedure. For the network that 
you add, you must also edit the "Areas..." "Export-to..." and 
"Mail routing..." screens. The "areas" are the echomail 
subboards which you will send and receive from the 
network. The "export-to's" are the addresses of the other 
systems with whom you communicate echomail. If you are 
a point, the only system listed here would be your boss. If 
you are a node, you must list your points and the other 
systems you send to and receive from. The "mail routing" 
is used to tell CNet where to send email (netmail). If you 
are a point, you will be sending all mail to your boss. That 
is, from "*;*/*_*" to your boss address will be your only 
entry. You should re-boot CNet in order to have it 
recognize the new network. 

Sending netmail through FidoNet requires that you have the 
traplist.library file in your LIBS: directory, and have 
compiled the nodelist in your nodelist directory. These 
procedures are described in the mail chapter. Without a 
compiled nodelist, you will be completely unable to send 
netmail CNet checks and verifies the destination netmail 
address. A privilege flag is also required. Once mail is 
posted, it is placed into the outbound directory, waiting to 
be sent by TrapDoor (or some other mailer). At this point, 
it can not be edited or killed (through normal BBS 
commands). 

To configure a subboard to receive a FidoNet echo, use the 
EL command to edit some of the subboard fields. The 
"unique dirname" must be set to the network "tagname" for 
the echo. This is the name listed in the "areas..." screen 
"areas" window. You must set the "network affiliation" to 
read the name of the FidoNet domain. If you are running 
only one FidoNet style network, this will just be "FidoNet." 
You may optionally set the "origin/distribution" field to be 
an origin line for the subboard. If this field is left blank, 



248 CNetPRO 3 Bulletin Board Service 



CNet will use the field found on the CONFIG "FidoNet..." 
screen- 
It is not necessary to attach every FidoNet echo that your 
system tosses. If a FidoNet echo is not attached to a CNet 
subboard, the FidoNet echo will still be "tossed" to the 
nodes in your "export-to" list. This allows the "pass 
through" of echoes. 

You need to create a subboard for "bad" messages. This 
subboard should be given the unique dirname of 
"BAD_MSGS." You must set the Network Affiliation to 
one of your FidoNet networks; it does not matter which 
one. Without a bad messages subboard, all "bad" messages 
will be discarded. 

It is currently your responsibility to make sure that there is 
enough room in the subboard for newly imported items. 
New items may be "lost" if the subboard too full to accept 
new posts. FidoNet messages with the same titles as 
existing posts are never lost-they are attached to existing 
posts as responses. 

When users post or respond in FidoNet subboards, ".cnet" 
files are created or appended to in the outbound directory. 
These files are actually packed when Toss runs (described 
next), once a FidoNet message has been posted, it is not 
possible to edit or kill it (using normal BBS commands). 

The CNet program which actually does the FidoNet magic 
is called "Toss". It is located in the CNET: directory, and is 
a Shell program. You may also run Toss from a 
BBSEVENT. Toss takes one (optional) argument, the word 
"verbosity" a space, and then a number from to 3. These 
levels perform the following logging: 

0: Minimal logging (default) 

1: Give a summary of toss activity by area. 

2: Detail each netmail that is imported or routed. 

3: Detail EVERY message that is scanned. 

All of Toss's output is kept in a file "maiktoss.log." It is 
your responsibility to check and periodically delete this file. 
Toss works in five distinct cycles: 



Networking 249 



1 . Unpack. Find all packed message files in the 
inbound directory which need to be unpacked, and 
do so. 

2. Locate all .PKT files in the inbound directory. 

3. For each .PKT file, read the messages it contains. If 
the message is going to be exported to an export-to 
node, add the message to the export-to's buffer. If 
the message is to be imported locally, remember its 
position. 

4. Import all messages into local subboards. Doing 
this all at once speeds up the operation of Toss, so 
that it only must enter any given subboard once. 

5. Pack all ".cnet" files in the outbound directory, and 
add them to the ".flo" files. NOTE that the 
messages were added to the outbound directory at 
the time of posted, so do NOT have to be 
re-scanned for in this step. 

Toss has a number of configuration options. You can edit 
these options from the CONFIG "tosser..." screen. For 
more information, see the CONFIG chapter. Toss relies on 
the CONFIG "archivers..." information in order to unpack 
incoming packets. Insure that the "extract" information is 
accurate for the most common FidoNet packed message 
formats, like ZIP, ARC, and LHA. 

The AreaFix utility 

CNet's tosser comes complete with a built-in AreaFix 
utility. AreaFix allows points and nodes (all of the systems 
listed on the "export-to" screen) to control which of the 
"areas" they will receive. AreaFix can save you from 
having to do this maintenance yourself manually. 

In order to use AreaFix, the system must know its AreaFix 
password. Each export-to system can be given a different 
AreaFix password that you specify on the "export-to" 
screen. In order to "add" an area, the system must have an 
"access level" greater than or equal to the access level of 
the area. The system must also have the access flags that 
the subboard requires. Access level and access flag fields 
appear on both the "areas" and "export-to" screens. 

To use AreaFix, a message must arrive addressed to 
"AreaFix." The subject of the message must be the correct 



250 CNet PRO 3 Bulletin Board Service 



AreaFix password. The body of the message consists of 
area tagnames, one per line. If the tagname appears alone 
on the line, or has a "+" before it, CNet will attempt to add 
the area to the list of areas that the system receives. If the 
tagname appears with a "-" before it, CNet will remove the 
area from the list of areas that the system receives. 

CNet will always send netmail in "reply" to AreaFix 
messages, giving a list of which areas are accessible, with 
"+" beside the ones currently selected by the system. 

Connecting your BBS to FidoNet without using Toss 

We can think of no compelling reasons for wanting to run a 
third-party tosser with CNet instead of CNet's Toss. 
However, if you are willing to give up Toss's speed and 
efficiency, there are a couple of programs included to allow 
you to import and export in FidoNet post-tosser "message" 
format. 

Assuming you are using a tosser like TrapToss or Foozle, 
you will have subdirectories in your MAIL: directory with 
the names of the echomail area tagnames. These directories 
will contain files with names like "2.msg." 

If you are not using CNet's Toss, you should NOT have 
any networks configured from the CONFIG "FidoNet..." 
screen. In the subboard EL screens, you should have the 
"path to partO/net/cd" set to the path where the ",msg" files 
are located. For a network echo with the tagname of 
"games," this would be "mail: games/." Do not forget the 
final 7." 

Use the Shell program XFIDO to export messages from 
FidoNet subboards to the Mail: directories. After importing 
using TrapToss or Foozle, use the Shell program IFTDO to 
bring the new messages into the FidoNet subboards. Use 
CLEANFIDO to delete all files from the Mail: directories 
(to prevent them from being re- imported later). 

The Internet, UseNet and UUCP networks 

Although sometimes incorrectly used interchangeably in 
the BBS world, the three words "Internet, UseNet, and 
UUCP" refer to very different network concepts. The 



Networking 251 



Internet is a loose amalgam of networks (a web, or network 
of networks) reaching millions of people around the globe, 
with humble beginnings as the U.S. government 
experimental network "ARPANET". ARPANET has the 
distinction of being THE first computer network. Internet 
in 1993 consists of more than 8000 networks spanning the 
globe--45 countries, all seven continents. The Internet 
looks seamless to the end user. 

The Internet is the largest and fastest growing network 
around. It has been estimated that between 5 and 10 
million people use the Internet itself, and that upwards of 
25 million people exchange messages between the Internet 
and all of the other interconnecting networks. One 
estimate, cited by Al Gore, says the traffic on the Internet' 
grows 10 percent each month. 

What is the Internet useful for? The Internet is used for the 
exchange of electronic mail, but it is much more than that. 
It can also be used for file transfer and remote login. The 
Internet is like one big "virtual library." You can find 
graphics, software, books, library catalogs, BBSs, sounds, 
journals, newsletters, newspapers, and magazines on the 
Internet. Most information is free, but some commercial 
information providers exist (like Lexis, Nexis, etc.). There 
are also ways to talk interactively one-on-one to another 
user also currently using the Internet. There's even 
something called Internet Relay Chat (IRC), similar to 
CNet's join teleconference. If you find yourself actually 
connected to the Internet, there are a vast number of 
"introductory" books available to show you around. 

Who runs the Internet? As Christopher Davis, an Internet 
regular, put it, "Lots of people and nobody, and the 
National Science Foundation, kinda, sorta." The Internet 
can seem personal and institutional, organized and chaotic 
at the same time. The NSF initiated the NSFNET, the 
backbone in the United States that connects the mid-level 
networks (academic and research networks), which in turn 
connect universities and organizations. For obvious 
reasons, the NSF has a fair bit to say about the Internet in 
the United States, but it does NOT have control over the 
mid-level networks. 



252 CNet PRO 3 Bulletin Board Service 



What is acceptable use of the Internet? NSFNET's 
Acceptable Use Policy states that transmission of 
"commercial" information or traffic is not allowed across 
the NSFNET backbone, whereas all information in support 
of academic and research activities is acceptable. Example 
of "commercial" traffic include purchase orders, invoices, 
and unsolicited advertisements. 

How do you connect to the Internet? It is possible to 
connect your computer directly to the Internet through a 
commercial Internet provider such as UUNET 
Communications Services or Sprint's SprintLink. Many 
sysops who wish to only use the Internet for electronic mail 
and UseNet feeds choose to go other routes, however, 
namely the UUCP network. 

Networks NOT part of the Internet are referred to as being 
"outernets." UUCP and UseNet (and even FidoNet) are 
outernets. Outernets connect to the Internet through 
"gateways." 

UUCP, which stands for Unix to Unix Copy Program, is a 
worldwide network. It is a method for computers to talk to 
each other over phone lines. Versions of UUCP are 
available for most computer platforms. The UUCP network 
consists of thousands of computers all over the world that 
have agreed to communicate via phone lines. It is possible 
to send mail from one UUCP computer to any other by 
exactly specifying the computers which the mail must 
travel through (known as "source routing"). Many UUCP 
nodes (the ones you will probably encounter), however, 
"appear" to be part of the Internet itself, because they have 
registered with the Internet domain name system. These 
UUCP nodes actually have an agreement with an 
Internet-connected computer for the exchange of email. 
UseNet news also runs over the UUCP network, so that 
may also be available. UUCP does not allow for remote 
login or interactive file transfer, however. There is no 
central authority over the UUCP network, but there is a 
registry of computers (if their operators have remembered 
to submit the information). 

The UUCP to Internet connection route is much less 
expensive than connecting to the Internet directly. Your 
expenses may consist only of long distance charges, if that. 



Nsnwrkmg 253 



However, it may require more initial work on your part. 
The most difficult part is finding someone to agree to 
"connect" with you. You may find someone in a local user 
group, the sysop of another BBS, or at a university. If you 
require more "hand-holding" however, commercial UUCP 
email providers such as UUNET and PSI would be more 
than happy to charge you for UUCP and UseNet access. 

UseNet provides a service known as "network news." 
"News" as used here does not refer to current events from 
news wires, but to discussions, interest groups, and 
conferences. Thousands of discussion groups 
("newsgroups") exist on topics ranging from cooking to 
sex, from rock collecting to politics. Collectively, they 
produce more than 35 megabytes of data EACH DAY. 
UseNet news can be transferred via and between the 
Internet and UUCP networks, allowing users of those 
networks to participate. UseNet is its OWN network, 
however, with no one organization in control. It is closely 
related to the Internet, but is NOT the Internet. Having 
access to one network does not mean access to both. 
Technically, the UseNet is considered a conferencing 
system, not an electronic mail network. 

As already noted, UseNet is divided into newsgroups. 
Each newsgroup is made up of "articles." There are more 
than 2100 newsgroups on UseNet, but not every site or 
BBS receives all of" these groups in its "feed." Why 
wouldn't a BBS want to receive ALL of the UseNet 
newsgroups? This would mean a HUGE amount of traffic, 
using a great deal of valuable disk space. The BBS may be 
paying for the TTME to download the UseNet feed, making 
it cost prohibitive. Most commonly, perhaps, is that most 
of the newsgroups will concern topics which the users of 
the BBS will not be interested in. 

Connecting your computer to the UUCP network 

Once you have a source for your UUCP feed, you will need 
UUCP software to send and receive packets with your 
source. The UUCP software will handle the distribution of 
email to users, and the distribution of newsgroup articles 
into their individual directories. The software 
recommended for this duty is Matt Dillon's UUCP version 
1.16 or better (a two disk set). This software is available 



254 CNet PRO 3 Bulletin Board Service 



from the Fred Fish collection, and is available for download 
from Future World and other BBSs. 

There is a great deal to know and to understand about 
running a UUCP site. Read the UUCP software 
documentation thoroughly. There are very knowledgeable 
users on Future World always willing to give another sysop 
a hand. 

With UUCP configured and transferring files to and from 
your source, you should have two new "assign" commands 
in your startup files. UUMAIL: should point to a directory 
where private mail will be stored. Files within UUMAIL: 
have the names of the their recipients. UUNEWS: should 
point to a directory where UseNet newsgroups will be 
stored. Newsgroups have names like "altmusicclassic." 
The UUCP software uses a "hierarchical" directory 
structure. Each of the words you see separated by a period 
is a subdirectory. If you actually received a newsgroup by 
this name, you should see a subdirectory "alt" within 
UUNEWS:, a subdirectory "music" within "alt," and a 
subdirectory "classic" within "music." NOTE that 
UUMAIL: and UUNEWS: may consume considerable hard 
drive space. 

If you will be using your UUCP connection exclusively 
with CNet, you are ready to move on to the next section, 
"Connecting your CNet BBS to the UUCP network." CNet 
uses the UUMAIL: and UUNEWS: directories as they are 
created and maintained by the UUCP software. If you will 
not be using your UUCP connection exclusively with CNet, 
you may need additional software to read the newsgroups 
and to enter your responses. 

Connecting your CNet BBS to the 
UUCP network 

Using UUCP email through CNet is a simple procedure. 
To send or to receive email, a user must have a UUCP ID. 
He must use the EP command to set one. This will be the 
user's name on the UUCP network. 

When mail arrives for the user, the UUCP software will 
create a file in the UUMAIL: directory whose filename is 
the same as the user's UUCP network name. CNet includes 



Networking 255 



a program which "imports" these mail files. The program 
"IUUMAIL" is found on the CNet distribution disks. It 
may be used from the Shell, or as a BBSEVENT (DOS 
command type). In general, you will want to run this 
program after completing a UUCP connection. CNet must 
be running in order for IUUMAIL to be used. After 
IUUMAIL imports mail, you must delete the files in 
UUMAIL: to prevent them from being imported again. 
"DELETE UUMAIL:#? ALL" will accomplish this. You 
may find it convenient to place the UUCP commands, the 
IUUMAIL command, and the DELETE command all in 
one "script" file. 

Access for any individual user to send UUCP email is 
controlled by a privilege flag. See the mail chapter for 
more information. To actually send the mail, CNet calls 
the program "SendMail" with the appropriate arguments. 
SendMail is part of the UUCP software. The directory in 
which SendMail is located should be added to the DOS 
search path in your startup files (using a PATH command) 
so that CNet will be able to find it when necessary. Once 
email is sent, it cannot be killed or edited from the network 
(through normal BBS commands). The message is actually 
sent when you call the UUCP software routines to call your 
source. 

When newsgroup articles arrive through the UUCP 
software, files with names consisting of numbers (like "1" 
"2" etc) will appear in the UUNEWS: subdirectories. For 
example, if you have a newsgroup "rec.arts.startrek" then 
files will appear in UUNEWS:rec/arts/startrek. To import 
these files into a CNet subboard, you have to configure a 
subboard to receive them, and you have to use the program 
"IUUNEWS" found on the CNet distribution disks. 

To configure a UUCP subboard, use the EL command to 
edit several subboard fields. Set the "network affiliation" 
to read UUCP. Set the "path to partO/net/cd" field to the 
path to the newsgroup files. For the "rec.arts.startrek" 
example, this would be "UUNEWS:rec/arts/startrek/". Do 
not forget the last "/". Set the "origin/distribution" field to 
reflect the scope of the messages that will be posted on this 
subboard. For example, use "world" if you want things 
distributed throughout the world, or "na" for only North 



256 CNet PRO 3 Bulletin Board Service 



America. Check with a knowledgeable UUCP node for 
other distribution codes. 

The program "IUUNEWS" actually reads your UUNEWS: 
directory and imports the HEADERS of the articles into 
CNet format. Because the actual text of UseNet articles is 
not imported, you must keep the UUNEWS: directory intact 
(do not delete files after importing). When messages are 
deleted through the various CNet pathways (Kill, amaint, 
etc.), you have the option of deleting the corresponding 
files from the UUNEWS: directory. This option is 
available to you from the CONFIG "options..." screen. 
This method of keeping the UUNEWS: in place was 
adopted because the majority of people who run UUCP 
nodes prefer to also have the ability to read the newsgroups 
using third party software. 

The subboard's EL screen contains a "UUCP high-water" 
field. This keeps track of the last (highest numbered) file 
that was found in and imported from the UUNEWS 
directory. Occasionally, this number will be reset, or the 
newgroup will be "renumbered." When this happens, you 
will have to reset the "UUCP high-water." You could also 
simply kill all of the messages on the subboard, and reset 
the "UUCP high-water" to 0. This will cause all messages 
to be re-imported when IUUNEWS is again run. 

When users post messages or responses, CNet invokes the 
"PostNews" command with the appropriate arguments. 
PostNews is not included with CNet, but is a UUCP 
program which should be located in the same directory as 
SendMail. Once the message is sent, it may not be killed or 
edited from the network (through the means of normal BBS 
commands). The message actually "goes out" when you 
invoke the UUCP software routines to call your source. 



System Maintenance 257 



CHAPTER 14 - System maintenance 
Remote system operators 

When you are granted the "system operator" privilege flag, 
you gain the ability to use all of the maintenance 
commands (next section). You also gain the ability to enter 
any subboard with full subboard operator rights. If an 
unauthorized person were to gain access to these abilities, 
your BBS could be in serious jeopardy. Fortunately, 
remote system operator privileges have secondary 
password protection. If you are connected to a local-mode 
(console) port, you have access to system maintenance 
privileges as soon as you logon. If you are connected 
remotely, however, you must first use the "ID" command 
before being given access to system maintenance 
privileges. For security, this applies to ALL users, even the 
main SysOp, user #1. 

The remote system maintenance password and keyword are 
set using the shell "cnet:setpass" command. If you do not 
wish to use a remote system maintenance password, just 
press ENTER at the password and keyword prompts. 
Remote system operators are still required to use the ID 
command. 

Maintenance commands 

Following are the maintenance commands available at all 
command prompts. If you do not have system maintenance 
privileges, CNet will report "unknown command." 

AG: Activity Graph. Displays the System Activity 

Graph (SAG) screen. The SAG is an X-Y plot of 
system activity (utilization), from to 100%. The 
X axis is broken in 72 20 minute periods, beginning 
at 12 midnight, and ending at 11:40pm. The Y axis 
is broken into a percentage scale. Local ports and 
local calls do not affect the SAG. The SAG is 
viewable from the CONTROL panel's "Syslnfo" 
display. You may also "reset" the SAG from the 
Syslnfo display. 

AM: Activity Monitor. Displays the System Activity 
Monitor (SAM) screen. SAM consists of 15 



258 CNet PRO 3 Bulletin Board Service 



different counters, monitored for 5 different time 
periods. Counters include the number of feedback, 
mail sent, mail sent to #1 , posts, responses, gfiles 
read, pfiles launched, new users, upload files, 
upload K, download files, download K, minutes use, 
minutes idle, and charges (in cents, for the 
accounting system). The time periods include "last" 
(if the system is idle, the last caller), time since 
setup (re-boot), a definable time "period" (reset 
from the control panel), total (since file "bbs.sam" 
was created), and "current." Current is a special 
column— it shows the number of items online the 
system RIGHT NOW. You can glance at the 
current column to quickly see the number of 
feedbacks waiting to be read, the amount of mail 
you have, the number of new user applications 
waiting to be read, etc. 

DD: Direct Download. Select files from any path or 
system directory to download. 

DUmp:Change the "time remaining" for another port, or 

"dump" the user from the system entirely. You may 
specify a port number as an argument. You may 
cause the port to close after the user logs off. 

EA: Edit (a user's) Account. Completely described in 
the user account and access group chapter. 

EG: Edit (a default access) Group. Completely 

described in the user account and access group 
chapter. 

LA: Log of Amaint. Everything that occurred during 
automaintenance- which users were killed, which 
files were killed, which files failed the integrity 
check. Option is given to re-start the log. 

LC: Log of Calls. All activity for a given call is grouped 
together, even though several users may logged on 
at any one time. The first line contains the date, the 
port, and the modem connect string. This tells you 
ihe baud rate and modem protocol in use for the 
call. If a user successfully logs on, you will see a 
line with his handle, name, phone number, country, 



System Maintenance 259 



and "phone verification" field. If the port supports 
caller ID, you will see a line with the phone number 
as reported by the modem, together with a list of 
account numbers whose data phone numbers match 
the caller ID phone number. A maximum of 8 
account numbers is shown. Next you may see a 
series of log entries as determined by the "logs..." 
screen of CONFIG and the user's "log verbosity" 
field. See descriptions of these logs in the CONFIG 
chapter, and a description of the "log verbosity" 
field in the user accounts chapter. A line beginning 
with "SIGNOFF" will detail the way in which the 
user logged off. After the signoff line appears a 
"SAM summary"— two letter abbreviations for the 
variables on the SAM display, summarizing what 
the user did during that call, "ms" is mail send, 
"dk" is download kbytes, "df" is download files, 
"mu" is minutes used, "ml" is mail sent to sysop, 
"po" is posts, "re" is responses, etc. Option is given 
to restart the log. 

LU: Log of Uploads. TWO logs are actually presented, 
first the log of uploads, and then the loi of 
downloads. Each line in these files contains the 
date, the user's handle, the protocol and baud rate, 
the average CPS (if the file was big enough to 
measure one), the filename, the size (in K), and the 
directory (subboard) the file was transferred to or 
from. Options are given to restart the logs. 

RF: Read File. Display a text file. NOTE that MCI is 
interpretted. You may specify the filename as an 
argument. 

RUN: Execute a CNet "C" pfile. This provides a handy 

way of running update programs, utilities, etc., from 
any command prompt. You may specify the 
filename as an argument. 

VF: View Feedback. Read the feedback users posted 

using the "F" command. See the "mail" chapter for 
a description of the mailbox commands. 

VN: View New users. Read the new user applications, 



260 CNet PRO 3 Bulletin Board Service 



consisting of responses to questions asked during 
the new user procedure. See the "mail" chapter for 
a description of the mailbox commands. 

WF: Write File. Load a text file into the editor for 

editing, or create a new file. You may specify the 
filename as an argument. 

*D: Select Direct. Select any path or directory from 

which to choose files to add to your download select 
buffer. 

The on-line shell 

The "Shell" command from the Main prompt will take a 
system operator into an online shell. The online shell has 
all of the power of an actual DOS shell. Because access to 
this interface by unauthorized persons could spell instant 
system death, the on-line shell is protected by yet another 
password and keyword. This password is also set using the 
"cnet:setpass" command. 

CNet use's Matt Dillon's FIFO routines to manage its 
on-line shell. You should have the file "fifo.library" in 
your LIBS: directory, and "fifo-handler" in your L: 
directory. The file fifo-handler should have also been 
executed by your startup sequence. If you followed the 
CNet installation procedure, you should be ready to use the 
shell. 

When the online shell opens, CNet reads startup 
instructions from the file "shell-startup." In general, this 
file should contain commands which will make your job as 
sysop easier. The most important command to include in 
this startup file is "noreq" which disables DOS requesters. 
This prevents messages like "insert volume SYSTXT:" 
from popping up when you misspell "systext:", locking up 
the system. 

Just like a DOS shell, the proper way to exit a CNet on-line 
shell is with the "endcli" command. 

The maintenance pfiles 

CNet comes with several pfiles pre-loaded into a pfiles area 
directory entitled "maintenance." Because it was unknown 



System Maintenance 261 



to CNet what your system operator group number would be 
chosen to be, when you first configured your system, there 
were no access restrictions placed on this subdirectory. 
You should use the "AT" command to change the "access 
groups" field so that only system operators may use this 
directory. 

Pointers: this is perhaps the most important maintenance 
pfile. It re-creates the index files associated with the user 
data files. These files keep track of the alphabetical and 
phone-number order of user accounts. These files are 
crucial to the proper operation of "enter a handle" prompts. 
If your BBS becomes unable to locate users by handle, of if 
your BBS mysteriously begins rejecting new users, chances 
are your "user pointers" files are corrupted. Go to the pfiles 
and run this program. 

Count: ocassionally the SAM "current" column will 
become out-of-sync with the actual number of items on the 
BBS. Users may post, response, leave mail, and there may 
be a system crash. SAM, then, would not know about the 
changes. SAM is only updated when users log off. Use the 
"count" program to re-figure the SAM "current" column. 

Transpose: this pfile is described in the user account and 
access group chapter. It updates the user's privilege flags 
and limits with the access group defaults. 

Repair_sub: when ran from this directory (without an 
argument), the "repair_sub" program attempts to repair any 
damage to the "subboards3" file. There may be occasion 
where this file becomes corrupted and requires attention. It 
is easier to fix the problem than it is to re-enter possibly 
hundreds of subboards. This pfile may also take an 
argument of a subboard's "physical subboard#" or RANGE 
of physical subboard numbers. You can view a subboard's 
physical subboard number from the subboard EL 
command. With this argument, repair_sub will perform the 
equivalent of the subboard RR command on the 
subboard(s) specified. If you have particularly busy or 
particularly error-prone subboards, you can "automate" the 
RR process by placing this command as a bbsevent (see the 
CONFIG chapter), using the physical subboard number(s) 
as arguments. 



262 CNet PRO 3 Bulletin Board Service 



Missing: this is a simple pfile which scans all of your 
subboards for "missing" files-files which are "offline." 
Items found to be offline are "marked" as offline so that 
when you scan the items a "!" appears to the left of the 
filename. 

Automaintenance 

CNet's automatic maintenance ("automaintenance") 
routines are sometimes referred to as "amaint" for short. 
The pfile "pfiles:bbs/amaint" provides many crucial 
maintenance functions. It does the following: 

Removes users who have not called in the specified number 
of days. Each user has the field "amaint purge days" to 
control this. 

Delete "yank" files which are over a specified number of 
days old. This is controlled by a CONFIG "limits..." screen 
option. 

Test and transform files which have not yet been tested or 
transformed. 

Kill files and items which have not been downloaded or 
responded to in the specified number of days. Each 
subboard has the field "amaint purge days" to control this. 

Pack subboard data files. When items are killed in 
subboards, the data files are not actually restructued at that 
time. It is amaint's job to reorganize the subboard data 
files. 

Adopt subboard files which are currently "orphans" in the 
subboard's directories. 

Delete BBSList entires which are older than the specified 
number of days. This is controlled by a CONFIG "limits..." 
screen option. 



Making modiBcations to your CNet BBS 263 



CHAPTER 15 - Modifications and customization 

CNet can be extensively modified to bring a great deal of 
individuality and personality to your BBS. 

Definitions of Systext: files 

CNet's SYSTEXT; directory contains modifiable text files. 
Some example files are included with CNet, other optional 
files you can create as needed. Following are the 
explanations of these files: 

a valid: Defines which telephone number prefixes CNet 
will automatically call OUT to for the auto-validate and 
auto-callback functions. For a description of the 
auto-validation files, see the "logon procedures" chapter. 

badnames: Each line of this file should contain a word or 
word fragment which CNet should prevent from being used 
within a handle or real name. Use underscores (_) to 
represent spaces, or the beginning or the ending of a word. 
For example, "sysop" will prevent the word "sysop" from 
appearing anywhere, and will even prevent "asysoperator" 
from being used. "_sysop" will prevent words beginning 
with sysop, like "the sysoperator." "sysop_" will prevent 
words ENDING in sysop, like "the sysop" or "asysop," 
however, "the sysoperator" will be allowed. "_sysop_" will 
only prevent the actual word "sysop"— "asysop" and "the 
sysoperator" will be allowed. If a user enters a "bad name" 
he will be asked to enter a new one. 

badnumbers: Each line of this file should contain a phone 
number or phone number fragment which CNet should 
prevent from being used within a voice or data phone 
number. A full phone number has the format 
"313-5551212." Notice there is only ONE hyphen. If you 
place "313-555" on a line, all 313-555 phone numbers will 
be banned. If a user enters a "bad number" he will be 
IMMEDIATELY DISCONNECTED. 

help/: This directory contains files used in conjunction 
with the "HELP" command. You may add, remove, or 
modify files in this directory at any time. Since the file 
"systext:help/menu" is displayed whenever a user types the 
command "help" with no argument, you should not remove 



264 CNet PRO 3 Bulletin Board Service 



that file, and you may wish to add information to it to 
reflect additions or changes you make to the help files. 

menu/: this directory contains files displayed by the 
various "?" commands throughout the BBS. You may 
modify these files at any time. They are not used to 
determine the actual commands~they are display only. 

new/: This directory contains the files displayed to new 
users while explaining the various terminal settings and 
system preferences. There are a few special files here, 
explained next. 

new/nq: Explains the purpose and procedure of the new 
user questionnaire. 

new/nqX: New user questionnaire files, each containing 
one question. X is a positive integer, beginning with 0. 
You may have as many questions as you like, but must use 
numbers in order and beginning with 0. These questions 
and their answers go on to make up the user's "finger" file, 
which other users can read online. 

new/sq: Explains the purpose and procedure of the 
sysop's-eyes-only questions. 

new/sqX: Sysop questionnaire files. X is a positive integer 
beginning with 0. You may ask as many questions as you 
like, but must use numbers in order and beginning with 0. 
These questions and their answers will become part of the 
user's "finger" file when sysops ONLY use the "finger" 
command. 

nmail: Default new user mail. This optional message is 
automatically sent to every new user on their first call. 

noises: Used by the join teleconference to store the action 
command ("noise") prototypes. For more information, see 
the inter-user communication chapter. 

qwkend: This file will become the "goodbye" file in QWK 
Yank packets. 

qwkstart: This file will become the "hello" file in QWK 
Yank packets. 



Making modiBca tions to your CNst BBS 265 



sys.accessX: X is the user's access group number. CNet 
will attempt to display this file at logon. These files allow 
you to display messages only to members of specific access 
groups as they logon. 

sys.conf: The "entry" text which is displayed to users 
when they enter the join teleconference. You may wish to 
edit this file to contain general conference usage guidelines. 

sys.countries: CNet uses a 3 letter abbreviation for the 
name of the user's country. This file demonstrates the 
abbreviation convention in use at any prompt where the 
user is asked to input the name of a country, 

sys.end: A file displayed to users as they logoff. This file 
is not displayed when the "!" is used with OFF command. 

sys.info: A file describing your system. You should 
explain the hardware and software used to run your BBS. 
Please mention CNet and how to get it! 

sys.nuser: Shown to new users. Should contain the rules 
and acceptable use policy for your system. Users can 
review this file using the "NU" command. 

sys.private: Shown to users who enter "NEW" at the 
logon prompt when the port is not allowing new users 
(according to the CONTROL panel's pull down menu). 

sys. second: Shown to users on their SECOND call to the 
system (the first being the new user call). 

sys. start: Shown to users as soon as they "press RETURN 
to enter system." 

sys. welcome: Shown to users as soon as they successfully 
logon (by entering their correct handle and password). This 
file generally contains a greeting, and calls the quote and 
vote programs. Many sysops add numerous "extra" utilities 
here, such as "Top Ten Caller" lists. These little game or 
utility programs may be written in C, or as DOS or 
AREXX scripts, and can easily be launched right from the 
text of any CNet text file using "MCI" commands. See the 



266 CNet PRO 3 Bulletin Board Service 



section on the text editors for more details about using 
MCI. 

validation: shown to users after they complete an upload 
into a subboard which requires that the sysop "validate" 
files. The File should explain why the user is not 
immediately receiving credit for his upload. 

vde/: this directory contains files used by the visual data 
editor (like the EA, EG, and EL commands). These files 
are not modifiable. Expert programmers may create 
additional VDE files. See the programming section on the 
CNet release disk for more information. 

yank end: this file is added to the END of a Yank, when 
the yank is NOT of the QWK variety. 

yankstart: this file is added to the BEGINNING of a 
Yank, when the yank is NOT of the QWK variety. 

Making modifications to BBSTEXT 

You may make modifications to individual lines of the 
BBSTEXT file(s). You may not add or remove lines from 
these files. CNet prints text based on the order of the lines 
in these files. 

Special care should be taken to preserve the order of the 
%s's, %d's, and %c's found in the BBSTEXT file. These 
mark locations where CNet will substitute text into the line 
before the line is printed or otherwise used. When 
appropriate, it is OK to remove them from a line, but 
ONLY from right to left. You may NOT remove one from 
the beginning or middle of a line. For example, a line 
which reads "You have %d pieces of mail" may be changed 
to "You have mail." A line which reads "%s has %d items" 
may NOT be changed to "the area has %d items." 

IMPORTANT: do not add color to the beginning of lines 1, 
2, 3 or 8. The first characters of these lines are used for 
input comparison. 

In general, it is a BAD idea to increase the length of a line 
too much. The majority of these lines are used with 
strcpyO and sprintfQ statements into a text buffer. If that 



I Mak ing modifications to your CNet BBS 267 | 

text buffer is not long enough to hold the resultant string, 
variables and code may become corrupt. The majority of 
lines print into a 256 character output buffer. If you find 
you are increasing the size of a line by a considerable 
margin, you should consider using the MCI {*} command 
to read a text file. 

If "strange" things begin happening with your system 
(crashes, etc.), the first thing to do is try a "stock" 
BBSTEXT file, and see if the problem persists. If it goes 
away, chances are you have increased the length of a 
BBSTEXT line beyond its capacity. Re-add your 
modifications a couple of lines at a time to pinpoint the 
problem line. 

If the "stock" BBSTEXT file does NOT cure the problem, 
all third-party pfiles are then suspect. 

Making modifications to BBSMENU™ 
Adding or changing BBS commands 

The BBSMENU file(s) contain the commands available 
throughout the BBS. Inside BBSMENU, command prompt 
menus are organized into separate groups by menu number. 
The built-in CNet commands you find for each menu in the 
stock BBSMENU file are in a strict order. You must not 
change the order of the built-in commands. If you insert or 
delete any command, CNet will be unable to match 
commands to their functions. This section shows the 
proper way to add and remove commands. Note that after 
making any changes to BBSMENU, you should quit CNet 
entirely (close the control panel) and reboot to make sure 
your changes are enabled. 

The REQUIRED parts of commands are shown in upper 
case. Anything that is in lower case is optional typing. 
Commands may consist of more than one word. 

Two separate commands can perform the same function. 
To "alias" one command to another, use a COMMA (,) to 
separate the commands on the SAME LINE. For example 
"Off,LOGOFF" shows that the user can either enter "O" or 
"LOGOFF" to leave the system. You may add as many 
aliases to a single command as you need to. 



268 CNet PRO 3 Bulletin Board Service 



To REMOVE a command, you may not actually REMOVE 
it from the BBSMENU file. What you should do is to 
change the command to something which the user would 
not think of entering. For example, to remove the "List" 
command, you could change it to "LIST-REMOVED." 

To ADD a command, you must add it to the END of a 
menu list. Follow the command (and the aliases) by the 
PIPE character (|) and then any text you wish. The text will 
be displayed when the user enters your command. Most 
often, the "text" is actually in the form of an MCI command 
to run a pfile or display a file from disk. 

You can create command MACROS-a command which 
will be "expanded" into another command and arguments. 
MACROS must be placed at the BEGINNING of a menu 
set, before the normal commands. The addition (or 
deletion) of macros does NOT upset the order of the 
built-in commands which follow. There are many defined 
command macros included in the stock BBSMENU. All 
MACROS have a command, followed by a TILDE (~) and 
then the expanded version of the command. For example, 
"RG" is a valid subboard command to read items globally. 
The "RA" command is not an actual subboard command, it 
is a MACRO set to equal "RG NEW PREVIEW"-read 
NEW items globally, and show one "old" message from 
each item with new responses (PREVIEW). 

You can set access group restrictions individually for each 
command. Use the backwards apostrophe character (') 
followed by a RANGE of valid access groups. This can 
come at the end of a line, or in between the aliases and 
PIPE printing (see example below). For example, adding 
"'31" to a command's definition line will result in only 
access group 31 being allowed to use the command. 

Here is an example of a command which could be added to 
the end of the "available anywhere" list which would allow 
users having access levels 10-31 to view a directory of the 
systems RAM disk by entering either DR or R D: 

DRam,RamDir '10-31 | RAM files:{n2}{#4 c:dir RAM:} 

The left braces "{" above are actually Control-Q characters. 



Making modiSca tions to your CMst BBS 269 



NOTE that from a command prompt which allows 
"available everywhere" commands, CNet first searches 
menu number 1 (the maintenance menu, if the user is a 
sysop), then menu number 2 (available everywhere 
commands), and finally the individual command prompt 
menu. CNet will use the FIRST valid match it finds, so if a 
match is found in menu number 1 or 2, CNet will not 
continue to search the command prompt menu. 

Using multiple graphics sets 

A "graphics set" refers to the character set or "terminal 
type" that the user is calling with. Each terminal type 
offers different characters and different display capabilities. 
Each caller's terminal type is set at logon from the "Amiga, 
IBM, Skypix, Commodore" prompt. The terminal type can 
be changed while online by using the ET command. CNet 
recognizes the following different terminal types: 

(0) ASCII 

( 1 ) Commodore 64/ 1 28 

(2) IBM 

(3) Amiga International 

(4) SkyPix 

You can create custom "systext:" file sets for any or all of 
these different terminal types. When attempting to display 
a text file, CNet will first look for a file with the same 
name, but beginning with "TTn.", where n is the terminal 
type number from the above list. If this file is not found, 
CNet will then attempt to read the default titled text file. 

For example, for a caller using terminal type 2 (IBM), if 
CNet wants to read "sys.nuser," CNet will first look for 
"systext:tt2.nuser." If that isn't found, CNet looks for 
"systextsys.nuser." 

If the original filename does not contain "sys." as in the 
case of "validation," CNet will first look for 
"systext:tt2.validation." If that isn't found, CNet looks for 
"systext:validation." 

You can create these custom terminal type files for all 
displayed systext files. When reading "systextrhelp/editor," 
for example, CNet will first search for 



270 CNet PRO 3 Bulletin Board Service 



"systext:help/ttn.editor," where n is the terminal type 
number. 

You can also create custom terminal type files for the 
"sys.entry" and "sys.exit" Files used by subboards. When 
looking for "baseO:subname/data/sys.exit" for example, 
CNet will first search for "baseO:subname/data/ttn.exit„" 
NOTE that the subboard EN and X commands only edit the 
"sys." files. Creating and editing of the optional TTn files 
must be handled manually. 

Using multiple languages or text sets 

Although CNet currently is being shipped with all text files 
in English, CNet has the ability to completely support 
additional languages or "text sets." For each text set, CNet 
will use different BBSTEXT, BBSMENU, and "systext:" 
files. Some of these alternate language text sets are 
available for download from Future World. Others can be 
obtained from helpful sysops around the world who have 
done the enormous job of translation on their own. 

To enable this feature, use the CONFIG program's 
"options..." screen. Set "use multiple texts sets" to "user 
selectable" if you want users to select a text set on then- 
own (during the new user procedure, or by using the EP 
command). Set it to "port specific" if you want text set to 
be used for port 0, text set 1 to be used for port 1, etc. This 
last option allows you to have an "English" port, a 
"German" port, etc. 

Text set uses the files cnet:bbstext and cnefcbbsmenu (this 
is considered the "default" text set). Text set 1 uses the 
files cnet:bbstextl and cnet:bbsmenul. Text set 2 uses the 
files cnet:bbstext2 and cnet:bbsmenu2. You must have 
both a bbstext and a bbsmenu file for each text set you plan 
to use. You must use text set numbers in order-if you have 
bbstext2 and bbsmenu2, you must also have bbstextl and 
bbsmenul. You must always have bbstext and bbsmenu. 

CNet loads the bbsmenu and bbstext files when the control 
panel first runs. If you change these files, there is a way to 
have CNet re-load them. Use the control panel's pull-down 
menu option "re-load text/menu." 



Making modifications to your CNet BBS 271 



When using multiple text sets, CNet follows a search 
scheme to find the appropriate systext files. Within the 
"systext:" directory may exist "xX" directories, where X is 
the text set number, one for each text set. CNet will first 
search that directory. 

For example, when using text set 1, and attempting to read 
"sys.info," CNet will first search for "systextrxl/sys.info." 
If not found, CNet will then search for "systextsys.info." 
To complicate things, terminal type files are also supported 
here. The complete search order is (using text set 1 and 
terminal type 2): 

systext:xl/tt2.info 
systextrxl/sys.info 
systext: tt2. info 
systext: sys.info 

All readable text files will be searched for within the "xX" 
directories. For example, using text set and terminal type 
2, and attempting to read "systext:help/menu," CNet will 
search in this order: 

systext:x0/help/tt2.menu 
systext:xO/help/menu 
systext:help/tt2.menu 
systext: help/menu 

It is possible to have multiple text set files for the subboard 
exit and entry files. For example, using text set 3 and 
terminal type 2, CNet will search for "sys.exit" in this 
order: 

baseO: subname/x3/tt2,exit 
base0:subname/x3/sys.exit 
base0:subname/tt2.exit 
baseO: subname/sy s .exit 

NOTE that the subboard EN and X commands will only 
edit the files: 

"baseO:subname/sys.exit" and "baseO: subname/sy s.entry" 

You will have to edit the other files (if any) offline or by 
using the sysop WF command. 



j 272 CNet PRO 3 B ulletin Board Ser vice 

Notes: 



The Electronic Mail System 275 



CHAPTER 16 - Electronic Mail 

Electronic Mail is also known as "E-Mail" or just "mail." 
Incoming mail that is addressed to you is stored in your 
"mailbox" until you read it. Mail may arrive from other 
users on your BBS, or from users anywhere in the world if 
you are connected to a Fido-Net or UUCP network. When 
arriving from a network, mail is often referred to as 
"netmail." Unlike some other BBSs, mail on CNet is 
always PRIVATE, and may only be seen and read by the 
addressee. 

Sending Mail to Other Users 

The "Mail" command is used to send a private e-mail 
message to another user. You may include the addressee's 
handle or real name after the Mail command. You may 
only use the user's real name if he has selected his real 
name to be public (or if you are a sysop). Following are the 
prompts and options that you will see: 

Handle: If you did not specify a handle or name when 
giving the mail send command, you will be prompted to 
enter it now. 

Subject: You should give your mail a meaningful but 
consise subject or topic. 

# of days before expiration: Users will see this prompt 
only if they have been granted the proper privilege flag. It 
allows you to set the message to "expire" after a specific 
number of days. Expired mail is not actually removed from 
the recipient's mailbox until he attempts to read it. 

Mark this item as file-mail: Users will see this prompt 
only of they have been granted the proper privilege flag. 
Because files cannot actually be "uploaded" at the mail 
prompt, this method of sending file-mail is really for 
sysop-use only. Any file on the system can be "sent" to the 
user, as long as you know its full and correct DOS path and 
filename. If you select Yes at this prompt, CNet will 
expect the "subject" to contain a valid path and filename. 
CNet will attempt to verify that the file exists. If the file 
can not be found, you will be returned to the Subject 
prompt. When a user receives file-mail "attached" in this 



I 276 CNet PRO 3 Bulletin Board Service __ ! 

way, he is able to use the Download, Extract, * (select), and 
Grab commands at the mail-read prompt to manipulate the 
file. The file is NOT deleted after it is downloaded. For 
more information, see the following section "sending file 
mail." 

Return a receipt if no reply: It is sometimes desirable to 
know whether or not your mail was actually received and 
read. When you select Yes to this option, you will receive 
a reply when the recipient reads your mail. If the recipient 
does not reply himself, CNet will send you a short message 
informing you that your mail was received. If the recipient 
also kept the message in his mailbox, or forwarded it to 
another user, you will know that too. NOTE that sysops 
may STOP a return receipt from being sent by using the 
"N" command at the mail-read prompt after they have read 
a particular message that requested a return receipt. 

Return original message also: From a user's reply, it is 
sometimes difficult to recall the exact topic or details of 
your original conversation. When you select Yes to this 
option, CNet will automatically "QUOTE" your message 
back to you when the recipient replies. This allows you to 
easily see what the user was replying to. This feature also 
works with the "return receipt" feature. 

Urgent mail (shown at logon): Users will see this prompt 
only if they have been granted the proper privilege flag. 
When you have urgent mail waiting for you, you are 
automatically taken to read it as soon as you log on. In a 
sense, you are "forced" to read your urgent mail. Urgent 
mail can also be thought of as a "second" mailbox. If 
urgent mail is saved, the MR (mail read) command first 
reads the urgent mailbox and then the normal mailbox. 

Sending Mail Via Fido-Net 

Sending mail through a network on CNet is almost as 
simple as sending mail to "local" users. Once again, use the 
"Mail" command followed by the recipient's name, but this 
time add an "@" symbol and the Fido-Net address. For 
example, if you are connected to Fido-Net, you can send 
mail to Ken Pletzer by using: 

Mail Ken Pletzer® 1:2410/215 



The Electronic Mail System 277 



The Fido-Net address must be of the format shown 
(ZONE:NET/NODE). You can add a period and a "point" 
number if necessary. NOTE that you must have been 
granted the privilege flag to "send fido-netmail." 

CNet uses the Fido-Net "nodelist" to verify network 
addresses. If CNet is unable to locate an address in the 
nodelist, you will not be able to send netmail to that 
address. CNet uses "traplist.library" to access the nodelist. 
Insure that this file is found in your LIBS: directory and 
that you are using version 5.2 or greater. Also insure that 
your nodelist path is set correctly from the CONFIG 
"paths..." screen. 

You should regularly receive updated nodelists from the 
network(s) that you are a member of. In order to be used 
by traplist.library, these nodelists must be "compiled." It is 
recommended that you use "TrapList" to compile your 
nodelists. TrapList is a very easy to find and easy to use 
nodelist processor. Before you use it, TrapList must be 
"configured" by placing some information about your 
system into a "cfg" file. To get you started, following is a 
sample "traplist.cfg" file for a BBS using CLink (zone 911) 
and Fido-Net (zone 1): 

ZONE 91 1 

NODELISTPATH "mail:nodelist/" 

NODELIST "clinklst" 

NODELIST "nodelist" DIFF "nodediff" 

DELOLDLISTS 

DELOLDDIFFS 

After running TrapList, if everything compiled OK, you 
should find the files "fidonet.index" and "fidonet.extra" in 
your nodelist directory. 

Once CNet is able to locate the mail destination address in 
the nodelist, a "verification" prompt is given which gives 
the system's name and geographical location. Here are the 
other prompts that you will see: 

Subject: Just as with local mail, attempt to be as concise 
but descriptive as space allows. 



278 CNet PRO 3 Bulletin Board Service 



Crash-mail, Hold, Normal: Users will see this prompt 
only if they have been granted the proper privilege flag. 
This is sometimes referred to as the "flavor" of the netmail. 
"Crash-mail" is marked for immediate shipment (as 
opposed to waiting for the network mail hour). Crash-mail 
will only work if you have your mailer (TrapDoor) 
configured to check for crash-mail packets every hour or 
so. "Hold for pickup" mail is marked to NOT be sent 
unless the destination address calls YOU (unless you are 
calling the destination address for some other reason 
anyway, such as echomail). All other mail is "normal" and 
is sent during the normal mail hour. 

Request, Attach, or Neither: Users will see this prompt 
only if they have been granted the proper privilege flag. 
This option allows you (sysops) to request files (programs 
or text files, as opposed to messages) from other systems, 
or to send files to other systems. In either case, the subject 
line should be the name of the file that you are requesting 
or attaching. When requesting a file, a password may be 
required. In this case, add "!" and the password to the 
subject line. With this type of file request (as opposed to 
the FReq command) or file attach, you may also include a 
small netmail message. 

Request return-receipt: This option sets the "return 
receipt requested" flag in the outbound mail packet. There 
is no guarantee that the destination system supports this 
option, so you may not actually receive a receipt. 

Use your real name: Most Fido-Net networks allow only 
REAL NAMES to be used. This option is included for 
those networks that don't mind handles. 

CNet files netmail into the outbound directory (CONFIG 
"paths..." screen). The netmail may be "routed" to another 
system other than the actual destination system. If you are 
a point, all netmail is routed to your boss. For details on 
establishing the routing rules for your network, see the 
CONFIG chapter's "Fido-Net..." section. 

Sending Mail Via UUCP 

To send mail through the internet (UUCP), again use the 
Mail command with the @ symbol separating the 



The Electronic Mail System 279 



recipient's name and the destination address. For example: 
Mail future@engin.umich.edu 

was once the way to send mail to Ken Pletzer via the 
internet. NOTE that this actual address is no longer valid. 
CNet prompts the sender ONLY for a subject (topic). 
There are no other options for sending UUCP mail. You 
must have been granted the "send UUCP mail" privilege 
flag to send UUCP mail. 

Before UUCP netmail will operate, you must have installed 
and configured Matt Dillon's UUCP programs, version 
1.16 or higher. CNet calls the "sendmail" command to 
actually spool the outgoing mail. CNet does no error 
checking itself insofar as checking for valid destination 
addresses. It is up to the mailer to bounce-back a reply 
stating that a specified destination address is invalid. 

Reading Your Mail 

To read your mail, you may use the "MR" command at any 
command prompt. Another way to read your NEW mail is 
to respond "Yes" to the prompt to read your new mail at 
logon. 

You are first shown a summary of the mail you have. Each 
mail item has a number, a date, an author, and a subject. 
You might see symbols to the left of the mail number. 
These symbols represent: 

> : Marks the "current" item. It points at the item you 
have most recently read. If you have not yet read any of 
your mail, it points to the first item that you will read by 
pressing ENTER. By default, the first item to be read is the 
first "new" item. 

N: Marks a "new" item. A new item is one that has not 
yet been read. In the case of a "shared" mailbox, like 
feedback or new user applications, once ANY user has read 
the item, it is no longer considered "new." 

C: Marks a "carbon copy" item. This item was posted 
(or was a response to a post) in a subboard. The author 
addressed the message to you. The subboard is configured 



280 CNet PRO 3 Bulletin Board Service 



to allow carbon copies. If you REPLY to this item, you 
have the option of replying publically in the subboard or 
privately in mail. 

F: Marks "file mail." The subject of a file mail item is 
the path and filename of a downloadable file. The 
mail-read commands Download, Extract, Grab, and * 
(select) become active on this item. When the item is 
killed, the file is not deleted. See the "file mail" section for 
information on sending file mail. 

The mail-read prompt is "Again, Kill, Quit, Reply, Scan, 
[pass]". Pressing ENTER will always read the next item. 
Once you have reached the end of the messages, pressing 
ENTER again will begin reading at the FIRST item. To get 
out of mail-read, or once you have killed all of your 
messages, use the "Quit" command. If a mail item has 
expired, it will be automatically killed the first time you 
attempt to read it. 

Following are mail-read commands: 

Again: Read the message you most recently read (marked 
with "> " on the scan list) again. 

Download: 

Download file mail. 

EA: (sysop) When reading mail, the EA command 
defaults to the author of the current message. 

Examine: 

Examine the archive contents of file mail. Operates 
just like the Examine subboard command. 

Finger: 

When reading mail, the Finger command (to read a 
user's general information text file) defaults to the 
author of the current message. 

FOrward; 

If the proper privilege flag has been granted, the 
FOrward command can be used to send a copy of 
the item to another user's mailbox. The original is 
not automatically killed. 



The Electronic Mail System 28 1 



GRAB: 

Display the file contents of file mail. 

Operates just like the GRAB subboard command. 

Group: (sysop) Change the author's access group number. 
This command is especially helpful when reading 
multiple new user applications! 

KiU: Remove the item from your mailbox. Using the 
Kill command again will "un-Kill" the item. 

List: Display the list of recipients of this message. This 
message works only for Bulk mail that has a "route 
file" on disk. See the "bulk mail" section for more 
information. 

Noreceipt: 

(sysop) Disable the return receipt for this item. If 
for some reason you do not reply to a message, and 
do not wish the author to receive a return receipt, 
this command will prevent CNet from sending a 
return receipt for the item. To re-enable the return 
receipt for the item, re-read the item. 

Pass: Read the next item. This happens automatically by 
just pressing ENTER at the mail-read prompt. 

Quit: End the mail-read session. All un-killed messages 
are kept in the mailbox. If you did not kill any 
messages, you will be asked if you would like to 
kill the messages that you just read. 

Reply: Send a reply to the author of the current message. 
Your reply will by default have the same subject as 
the original message. 

Scan: Re-display the list of mail items. 

Write: (sysop) Enter the editor with this item. This is NOT 
an "Edit" command. The Write command allows 
you to manipulate the text, and then use the editor's 
GET and PUT commands to write the message to 
disk. When you "Save" from the editor, your 



282 CNet PRO 3 Bulletin Board Service 



changes are not saved to the mailbox. At present, 
this command is mainly supplied for the 
convenience of sysops who want an easy way to 
save (PUT) important mail items outside of then- 
mailbox for future reference. 

Yank: Use the yank-task (background process) to pack 
mail for downloading. See the subboard "yank" 
section for more information on the use of the 
yank-task. 

*: Add file mail to your file select buffer for later 
downloading. 

Mail-read commands operate by default on the "current" or 
most recently read item. You may also specify a RANGE 
of items with most commands. 

You will receive a system OLM if your mailbox receives a 
message from another user currently online. This can also 
occur if network mail is imported into your box on another 
port while you are online. Due to the method CNet uses to 
store and access mail, if you happen to receive an OLM 
notifying you of a new message, WHILE you are already 
reading your mail, that new message will NOT be visible to 
you until you exit the Mail Read system and re-enter. 

Verifying Mail You've Already Sent 

Many times you send mail and wish to later make changes 
to what you've written, or even pull the mail altogether. 
Or, perhaps, you are just curious as to whether or not 
someone is still holding your mail in his mailbox. This is 
called "verifying" mail, and is available from the Main 
prompt with the "MV" command. Normal system users 
will only be able to see and verify mail that THEY sent. 
Sysops can see all mail. You may not verify a user's mail 
if he is currently reading it. 

Each mail item is displayed in turn, followed by the prompt 
"#, Again, Edit, Kill, Quit, [next]." The options at this 
prompt are as follows: 

#: This stands for a number. Enter the mail item 

number which you would like to immediately read. 
You may skip forward or backward. 



The Electronic Mail System 283 



Again: Read again the message you have just read. 

Edit: Change the message. You may edit and re-edit mail 
as many times as you need to. 

Kill: Remove the item from the mailbox. Using the Kill 
command again will "un-kill" the item. 

Quit: Immediately end the mail-verify session. An option 
is given to "save your changes." Answering No will 
leave the mailbox unaffected. 

Next: Read the next message. This happens automatically 
by just pressing ENTER at the mail- verify prompt. 
After you have read the last message, mail-verify 
will automatically go to the "quit" command. 

You may only verify mail sent to local users. Once mail is 
sent through the network, it may not be killed or edited. 

A system operator can use the "MV ?" command to obtain 
a list of all accounts that have mail. 

Sending Bulk and Party Mail 

Bulk mail is a convenient way to send the same message to 
a group of users. Party mail is actually bulk mail with one 
enhancement—all replies to party mail are sent 
automatically to ALL original party mail recipients. 
Replies to non-party mail go only to the message author. 
You must have the proper privilege flags to send either 
bulk or party mail. 

To send bulk mail (which may later be changed into party 
mail), use the "MM" command from any command prompt. 
The initial setup of the mail message is identical to normal 
local mail. You will be asked for a subject, and will be 
asked to answer yes or no to several prompts. You will 
then use the editor to write the mail. 

The next prompt will be "Enter route file name." You are 
being asked for a filename to store the recipients' account 
information. If you plan to send mail to this group of users 
again, you should assign a route file name. A route file 



284 CNet PRO 3 Bulletin Board Service 



name is REQUIRED if you plan to make this bulk mail into 
party mail. Party mail MUST have a list of the original 
recipients in order to again send mail to those same users. 
To send your bulk mail to a group of users to whom you've 
sent bulk mail in the past, enter the previous route file name 
at the "Enter route file name" prompt. 

If you are not using an existing route file, CNet will now 
prompt for users to send the mail to. You will first be 
prompted with "Access groups to include." You may enter 
a RANGE of access groups at this prompt. If you select No 
to "All members of these groups?" CNet will prompt you 
with the name of each member of those groups. 

If you just press ENTER at the "Access groups to include" 
prompt, you will be given a series of "Enter an ID number 
of Handle" prompts. This prompt will repeat, and you may 
continue to enter as many user IDs or handles as you desire. 
After the last one has been entered, just press ENTER at the 
prompt. 

If you selected a route file name, and you answer Yes to the 
"Is this party mail" prompt, the party mail flag will be 
enabled in the message. Each response to party mail will 
be sent to all original recipients of the message. Use party 
mail with discretion! 

CNet will display a final recipient count. 
Sending Files via E-Mail 

Users may not directly upload files into other users' 
mailboxes. CNet supports a couple of easy ways to 
simulate this, however. 

The first is for sysops only, or for users with the "send file 
mail" privilege flag. This method allows you to attach any 
file on the system to a mail message. Use the Mail 
command to send mail. Set the subject of the mail to be the 
path and filename of the file you want to "send." When you 
are prompted with "is this file mail" respond Yes. If CNet 
is unable to find the file, you are returned to the subject 
prompt. 

When the user reads the file mail, he may use the 



The Electronic Mail System 285 



Download, Extract, Grab, and * (select) commands. The 
file is not deleted when the mail is killed. 

The second file mail method is much better suited for 
general user to user file sending. And it does not involve 
the normal (message) Mail Send procedure at all! Inside a 
SUB BOARD, when a message (or file) is created, 
addressed TO a specific user, and the subboard's "carbon 
copy" option is enabled, CNet will make a copy of that 
message in the addressee's mailbox. If it was a FILE that 
was addressed, the file mail commands (Download, etc.) 
will be enabled when the user reads his mail. With the help 
of several subboard flags, it is possible to create a custom 
"file mail" subboard. Users wishing to send file mail would 
simply have to enter the file mail subboard and use the 
Upload command. Your file mail subboard should be easy 
for users to find. Perhaps the first or second subboard on 
the main list of file transfer subboards. Set the following 
flags in that subboard's configuration: 

Address messages: set to "FORCE" if you want ALL files 
in that subboard to be addressed to someone (therefore 
making carbon copies for them all). 

Default purge status: set to "@DL" if you want files to be 
deleted after they are downloaded. This is usually what 
you would want for temporary "mail" files. 

Private messages: set to "FORCE" so that only the 
addressee of the file will be able to download the file. 

Carbon copy to email: set to "yes/def on" to enable the 
carbon copy messages. 



286 CNet PRO 3 Bulletin Board Service 

Notes: 



INDEX 

Access 1 

Access groups 109 

Accounting 58 

Adding Items 212 

Adopting Orphan files 168 

AmigaDOS 2 

ANSI 2 

ANSI Visual Editor 198 

Archive 2 

Archivers 64 

AreaFix 249 

AREXX 2 

AREXX Commands 218 

Argument 2 

Assign 3 
Auto Callback at logon 92 
Auto Callback validate 92 

Automaintenance 262 

Automatic Installation 27 

Avalid Files 92 

Baud Rate 3 

BBS Macros 58 

BBS Preferences 130 

BBSMENU 267 

BBSTEXT 266 

Bulk Mail 283 

Byte Credits 173 

C Language 3 

C Programming 218 

Caller ID 94,96 

CD 3 

CD-ROM Subboards 159 
Changing BBS commands 

267 
CLI 4 

Conference Room 

Commands 234 
Conference Room 

Preferences 237 
Configuration Editor 47 



Control Keys 197 

Control Panel 35-39 

Copy 4 

Creating Subboards 135 

Credit System 173 

Customization 263 

Default 4 

Defaults 52 

Device 4 

DIP Switch 5 
Direct Disk Access 

Subboards 157 

Directory 5 

Display 48 

DOS Shell Interface 217 

Download 5 

Downloading Files 165 

Draw Editor 201 

DTR 5 

EA command 110 

Edit Items 175 

Editing Items 213 
Editing Limits/Ratios/Flags 

111 
Editing multiple subboards 

154 

Editors 66 

EG command 1 10 
EL "Edit Access Vars" 143 

EL "Other Hags* 146 

Electronic Mail 275 

Endcli 6 

Events 68 

Execute 6 

Executing Items 215 

Extract 6 

Feedback 6 

Fido 6 

Fido-Net 79 
FidoNet 245, 247 

FidoNet Mail 276 

FidoNet Subboards 160 

File 6 

File Credits 173 



File Integrity Testing 


183 


Makedir 


9 


File Mail 


284 


Manual Installation 


28 


File Transfer Protocol 


7 


Megabyte 


10 


File Transformation 


185 


Memory and buffers 


140 


File Validation 


177 


Message Command 




Font 


7 


Interpreter (MCI) 


203 


Gadget 


7 


Modems 


74 


Getting Help 


22 


Moving Items 


175 


GETUSER values 225, 226 


Moving Subboards 


157 


Gfiles 7 


,211 


Multiple graphics sets 


269 


Glossary 


1 


Multiple language sets 


270 


Handle 


7 


New features 


21 


Hayes 


7 


New items and respons 


jes 


Hiding and Muffling 


230 




180 


Icon 


8 


New user 


91 


Iconify 


8 


News 


10 


Input prompt 


104 


News Files 


211 


Installation 


27 


Null Modem 


90 


Inter-user chat 


232 


On-line messages (OLM's) 


Interface 


8 




229 


Internet 


250 


On-line Shell 


260 


Join teleconference 


233 


Online 


10 


Join-link 


240 


Options 


53 


Kill Items 


175 


Paragraph Formatting 


197 


Kilobyte 


8 


Partition 


10 


Libraries 


8 


Party Mail 


283 


License Agreement 


23 


Paths and partitions 




Limited Warranty 


24 


56 


,137 


Limits 


49 


Pausing and breaking 


106 


Limits 


109 


Paybacks 


173 


Line Editor 


193 


Pfiles 10,211 


Line Noise 


8 


Pixel 


11 


Local 


9 


Port 


11 


Logical Name 


9 


Port Monitoring 


239 


Logical Unit 


9 


Privilege flags 


116 


Logon 


9,89 


Privileges 


109 


Logon prompts 


90 


Prompt 


11 


Logs 


84 


Protocol 


11 


Macro 


9 


Protocols 


67 


Main Command Level 




PutUser arguments 


225 


1 97 


,102 


RAM 


11 


Maintenarice Commands 


Ranges of numbers 


105 




257 


Ratios 


173 


Maintenance Pfiles 


260 


Reading Mail 


279 



Registration card , 22 


User Profile 


127 


Remote Term System 239 


User Status Window 


43 


Resident 12 


User-Startup 


14 


RS-232 12 


Users 


109 


Run 12 


UUCP 


14 


Running CNet 35 


UUCP Mail 


278 


Scanning New Items at 


UUCP network 250, 254 


Logon 1 8 1 


UUCP Subboards 


159 


Script File 12 


Validate 


14 


Selecting Ranges of Items 


Verifying Mail 


282 


169 


Visual Data Editor 


210 


Sending Mail 275 


Waiting for a call 


40 


Serial Port 12 


Workbench 


14 


Shell 13 


Yank-task 


177 


Skipping prompts 106 






Startup-Sequence 13,28 






Subboard configuration 






141 






Subboards 13, 135 






Subdirectories 154 






SubOp 13 






SysOp 13 






Sy sop E A functions 124 






System Files 29 






System Maintenance 257 






System Requirements 20 






Systext: files 263 






Term Macros 58 






Terminal 14 






Terminal Mode 45 






Terminal Preferences 127 






Text Editors 14,193 






Tosser 86 






Updating 28, 30 






Upload 14 






Uploading Files 165 






UseNet 14, 250 






User 14 






User Conference 






Preferences 236 






User logon/logoff Monitor 


'""■!. 




232 






User on-line 42 


*V>-N f-"- . , 




User Preferences 127